/*global pi */

pi.mod.define('pi.os.winh', function (pi) {
	"use strict";
	var module = {};
       
	/*
	 * Scroll Bar Constants
	 */
	module.SB_HORZ = 0;
	module.SB_VERT = 1;
	module.SB_CTL = 2;
	module.SB_BOTH = 3;

	/*
	 * Scroll Bar Commands
	 */
	module.SB_LINEUP = 0;
	module.SB_LINELEFT = 0;
	module.SB_LINEDOWN = 1;
	module.SB_LINERIGHT = 1;
	module.SB_PAGEUP = 2;
	module.SB_PAGELEFT = 2;
	module.SB_PAGEDOWN = 3;
	module.SB_PAGERIGHT = 3;
	module.SB_THUMBPOSITION = 4;
	module.SB_THUMBTRACK = 5;
	module.SB_TOP = 6;
	module.SB_LEFT = 6;
	module.SB_BOTTOM = 7;
	module.SB_RIGHT = 7;
	module.SB_ENDSCROLL = 8;


	/*
	 * ShowWindow() Commands
	 */
	module.SW_HIDE = 0;
	module.SW_SHOWNORMAL = 1;
	module.SW_NORMAL = 1;
	module.SW_SHOWMINIMIZED = 2;
	module.SW_SHOWMAXIMIZED = 3;
	module.SW_MAXIMIZE = 3;
	module.SW_SHOWNOACTIVATE = 4;
	module.SW_SHOW = 5;
	module.SW_MINIMIZE = 6;
	module.SW_SHOWMINNOACTIVE = 7;
	module.SW_SHOWNA = 8;
	module.SW_RESTORE = 9;
	module.SW_SHOWDEFAULT = 10;
	module.SW_FORCEMINIMIZE = 11;
	module.SW_MAX = 11;

	/*
	 * Old ShowWindow() Commands
	 */
	module.HIDE_WINDOW = 0;
	module.SHOW_OPENWINDOW = 1;
	module.SHOW_ICONWINDOW = 2;
	module.SHOW_FULLSCREEN = 3;
	module.SHOW_OPENNOACTIVATE = 4;

	/*
	 * Identifiers for the WM_SHOWWINDOW message
	 */
	module.SW_PARENTCLOSING = 1;
	module.SW_OTHERZOOM = 2;
	module.SW_PARENTOPENING = 3;
	module.SW_OTHERUNZOOM = 4;


	//#if(WINVER >= 0x0500);
	/*
	 * AnimateWindow() Commands
	 */
	module.AW_HOR_POSITIVE = 0x00000001;
	module.AW_HOR_NEGATIVE = 0x00000002;
	module.AW_VER_POSITIVE = 0x00000004;
	module.AW_VER_NEGATIVE = 0x00000008;
	module.AW_CENTER = 0x00000010;
	module.AW_HIDE = 0x00010000;
	module.AW_ACTIVATE = 0x00020000;
	module.AW_SLIDE = 0x00040000;
	module.AW_BLEND = 0x00080000;

	//#endif /* WINVER >= 0x0500 */


	/*
	 * WM_KEYUP/DOWN/CHAR HIWORD(lParam) flags
	 */
	module.KF_EXTENDED = 0x0100;
	module.KF_DLGMODE = 0x0800;
	module.KF_MENUMODE = 0x1000;
	module.KF_ALTDOWN = 0x2000;
	module.KF_REPEAT = 0x4000;
	module.KF_UP = 0x8000;

	//#ifndef NOVIRTUALKEYCODES


	/*
	 * Virtual Keys, Standard Set
	 */
	module.VK_LBUTTON = 0x01;
	module.VK_RBUTTON = 0x02;
	module.VK_CANCEL = 0x03;
	module.VK_MBUTTON = 0x04; /* NOT contiguous with L & RBUTTON */

	//#if(_WIN32_WINNT >= 0x0500);
	module.VK_XBUTTON1 = 0x05;/* NOT contiguous with L & RBUTTON */
	module.VK_XBUTTON2 = 0x06;/* NOT contiguous with L & RBUTTON */
	//#endif /* _WIN32_WINNT >= 0x0500 */

	/*
	 * 0x07 : unassigned
	 */

	module.VK_BACK = 0x08;
	module.VK_TAB = 0x09;

	/*
	 * 0x0A - 0x0B : reserved
	 */

	module.VK_CLEAR = 0x0C;
	module.VK_RETURN = 0x0D;

	module.VK_SHIFT = 0x10;
	module.VK_CONTROL = 0x11;
	module.VK_MENU = 0x12;
	module.VK_PAUSE = 0x13;
	module.VK_CAPITAL = 0x14;

	module.VK_KANA = 0x15;
	module.VK_HANGEUL = 0x15; /* old name - should be here for compatibility */
	module.VK_HANGUL = 0x15;
	module.VK_JUNJA = 0x17;
	module.VK_FINAL = 0x18;
	module.VK_HANJA = 0x19;
	module.VK_KANJI = 0x19;

	module.VK_ESCAPE = 0x1B;

	module.VK_CONVERT = 0x1C;
	module.VK_NONCONVERT = 0x1D;
	module.VK_ACCEPT = 0x1E;
	module.VK_MODECHANGE = 0x1F;

	module.VK_SPACE = 0x20;
	module.VK_PRIOR = 0x21;
	module.VK_NEXT = 0x22;
	module.VK_END = 0x23;
	module.VK_HOME = 0x24;
	module.VK_LEFT = 0x25;
	module.VK_UP = 0x26;
	module.VK_RIGHT = 0x27;
	module.VK_DOWN = 0x28;
	module.VK_SELECT = 0x29;
	module.VK_PRINT = 0x2A;
	module.VK_EXECUTE = 0x2B;
	module.VK_SNAPSHOT = 0x2C;
	module.VK_INSERT = 0x2D;
	module.VK_DELETE = 0x2E;
	module.VK_HELP = 0x2F;

	/*
	 * VK_0 - VK_9 are the same as ASCII '0' - '9' (0x30 - 0x39)
	 * 0x40 : unassigned
	 * VK_A - VK_Z are the same as ASCII 'A' - 'Z' (0x41 - 0x5A)
	 */

	module.VK_LWIN = 0x5B;
	module.VK_RWIN = 0x5C;
	module.VK_APPS = 0x5D;

	/*
	 * 0x5E : reserved
	 */

	module.VK_SLEEP = 0x5F;

	module.VK_NUMPAD0 = 0x60;
	module.VK_NUMPAD1 = 0x61;
	module.VK_NUMPAD2 = 0x62;
	module.VK_NUMPAD3 = 0x63;
	module.VK_NUMPAD4 = 0x64;
	module.VK_NUMPAD5 = 0x65;
	module.VK_NUMPAD6 = 0x66;
	module.VK_NUMPAD7 = 0x67;
	module.VK_NUMPAD8 = 0x68;
	module.VK_NUMPAD9 = 0x69;
	module.VK_MULTIPLY = 0x6A;
	module.VK_ADD = 0x6B;
	module.VK_SEPARATOR = 0x6C;
	module.VK_SUBTRACT = 0x6D;
	module.VK_DECIMAL = 0x6E;
	module.VK_DIVIDE = 0x6F;
	module.VK_F1 = 0x70;
	module.VK_F2 = 0x71;
	module.VK_F3 = 0x72;
	module.VK_F4 = 0x73;
	module.VK_F5 = 0x74;
	module.VK_F6 = 0x75;
	module.VK_F7 = 0x76;
	module.VK_F8 = 0x77;
	module.VK_F9 = 0x78;
	module.VK_F10 = 0x79;
	module.VK_F11 = 0x7A;
	module.VK_F12 = 0x7B;
	module.VK_F13 = 0x7C;
	module.VK_F14 = 0x7D;
	module.VK_F15 = 0x7E;
	module.VK_F16 = 0x7F;
	module.VK_F17 = 0x80;
	module.VK_F18 = 0x81;
	module.VK_F19 = 0x82;
	module.VK_F20 = 0x83;
	module.VK_F21 = 0x84;
	module.VK_F22 = 0x85;
	module.VK_F23 = 0x86;
	module.VK_F24 = 0x87;

	/*
	 * 0x88 - 0x8F : unassigned
	 */

	module.VK_NUMLOCK = 0x90;
	module.VK_SCROLL = 0x91;

	/*
	 * NEC PC-9800 kbd definitions
	 */
	module.VK_OEM_NEC_EQUAL = 0x92; // '=' key on numpad

	/*
	 * Fujitsu/OASYS kbd definitions
	 */
	module.VK_OEM_FJ_JISHO = 0x92; // 'Dictionary' key
	module.VK_OEM_FJ_MASSHOU = 0x93; // 'Unregister word' key
	module.VK_OEM_FJ_TOUROKU = 0x94; // 'Register word' key
	module.VK_OEM_FJ_LOYA = 0x95; // 'Left OYAYUBI' key
	module.VK_OEM_FJ_ROYA = 0x96; // 'Right OYAYUBI' key

	/*
	 * 0x97 - 0x9F : unassigned
	 */

	/*
	 * VK_L* & VK_R* - left and right Alt, Ctrl and Shift virtual keys.
	 * Used only as parameters to GetAsyncKeyState() and GetKeyState().
	 * No other API or message will distinguish left and right keys in this way.
	 */
	module.VK_LSHIFT = 0xA0;
	module.VK_RSHIFT = 0xA1;
	module.VK_LCONTROL = 0xA2;
	module.VK_RCONTROL = 0xA3;
	module.VK_LMENU = 0xA4;
	module.VK_RMENU = 0xA5;

	//#if(_WIN32_WINNT >= 0x0500);
	module.VK_BROWSER_BACK = 0xA6;
	module.VK_BROWSER_FORWARD = 0xA7;
	module.VK_BROWSER_REFRESH = 0xA8;
	module.VK_BROWSER_STOP = 0xA9;
	module.VK_BROWSER_SEARCH = 0xAA;
	module.VK_BROWSER_FAVORITES = 0xAB;
	module.VK_BROWSER_HOME = 0xAC;

	module.VK_VOLUME_MUTE = 0xAD;
	module.VK_VOLUME_DOWN = 0xAE;
	module.VK_VOLUME_UP = 0xAF;
	module.VK_MEDIA_NEXT_TRACK = 0xB0;
	module.VK_MEDIA_PREV_TRACK = 0xB1;
	module.VK_MEDIA_STOP = 0xB2;
	module.VK_MEDIA_PLAY_PAUSE = 0xB3;
	module.VK_LAUNCH_MAIL = 0xB4;
	module.VK_LAUNCH_MEDIA_SELECT = 0xB5;
	module.VK_LAUNCH_APP1 = 0xB6;
	module.VK_LAUNCH_APP2 = 0xB7;

	//#endif /* _WIN32_WINNT >= 0x0500 */

	/*
	 * 0xB8 - 0xB9 : reserved
	 */

	module.VK_OEM_1 = 0xBA; // ';:' for US
	module.VK_OEM_PLUS = 0xBB; //  '+' any country
	module.VK_OEM_COMMA = 0xBC; //  ',' any country
	module.VK_OEM_MINUS = 0xBD; //  '-' any country
	module.VK_OEM_PERIOD = 0xBE; //  '.' any country
	module.VK_OEM_2 = 0xBF; //  '/?' for US
	module.VK_OEM_3 = 0xC0; //  '`~' for US

	/*
	 * 0xC1 - 0xD7 : reserved
	 */

	/*
	 * 0xD8 - 0xDA : unassigned
	 */

	module.VK_OEM_4 = 0xDB; // '[{' for US
	module.VK_OEM_5 = 0xDC; // '\|' for US
	module.VK_OEM_6 = 0xDD; // ']}' for US
	module.VK_OEM_7 = 0xDE; // ''"' for US
	module.VK_OEM_8 = 0xDF;

	/*
	 * 0xE0 : reserved
	 */

	/*
	 * Various extended or enhanced keyboards
	 */
	module.VK_OEM_AX = 0xE1; // 'AX' key on Japanese AX kbd
	module.VK_OEM_102 = 0xE2; // "<>" or "\|" on RT 102-key kbd.
	module.VK_ICO_HELP = 0xE3; // Help key on ICO
	module.VK_ICO_00 = 0xE4; // 00 key on ICO

	//#if(WINVER >= 0x0400);
	module.VK_PROCESSKEY = 0xE5;
	//#endif /* WINVER >= 0x0400 */

	module.VK_ICO_CLEAR = 0xE6;


	//#if(_WIN32_WINNT >= 0x0500);
	module.VK_PACKET = 0xE7;
	//#endif /* _WIN32_WINNT >= 0x0500 */

	/*
	 * 0xE8 : unassigned
	 */

	/*
	 * Nokia/Ericsson definitions
	 */
	module.VK_OEM_RESET = 0xE9;
	module.VK_OEM_JUMP = 0xEA;
	module.VK_OEM_PA1 = 0xEB;
	module.VK_OEM_PA2 = 0xEC;
	module.VK_OEM_PA3 = 0xED;
	module.VK_OEM_WSCTRL = 0xEE;
	module.VK_OEM_CUSEL = 0xEF;
	module.VK_OEM_ATTN = 0xF0;
	module.VK_OEM_FINISH = 0xF1;
	module.VK_OEM_COPY = 0xF2;
	module.VK_OEM_AUTO = 0xF3;
	module.VK_OEM_ENLW = 0xF4;
	module.VK_OEM_BACKTAB = 0xF5;

	module.VK_ATTN = 0xF6;
	module.VK_CRSEL = 0xF7;
	module.VK_EXSEL = 0xF8;
	module.VK_EREOF = 0xF9;
	module.VK_PLAY = 0xFA;
	module.VK_ZOOM = 0xFB;
	module.VK_NONAME = 0xFC;
	module.VK_PA1 = 0xFD;
	module.VK_OEM_CLEAR = 0xFE;

	/*
	 * 0xFF : reserved
	 */


	//#endif /* !NOVIRTUALKEYCODES */

	//#ifndef NOWH

	/*
	 * SetWindowsHook() codes
	 */
	module.WH_MIN = (-1);
	module.WH_MSGFILTER = (-1);
	module.WH_JOURNALRECORD = 0;
	module.WH_JOURNALPLAYBACK = 1;
	module.WH_KEYBOARD = 2;
	module.WH_GETMESSAGE = 3;
	module.WH_CALLWNDPROC = 4;
	module.WH_CBT = 5;
	module.WH_SYSMSGFILTER = 6;
	module.WH_MOUSE = 7;
	//#if defined(_WIN32_WINDOWS)
	module.WH_HARDWARE = 8;
	//#endif
	module.WH_DEBUG = 9;
	module.WH_SHELL = 10;
	module.WH_FOREGROUNDIDLE = 11;
	//#if(WINVER >= 0x0400);
	module.WH_CALLWNDPROCRET = 12;
	//#endif /* WINVER >= 0x0400 */

	//#if (_WIN32_WINNT >= 0x0400);
	module.WH_KEYBOARD_LL = 13;
	module.WH_MOUSE_LL = 14;
	//#endif // (_WIN32_WINNT >= 0x0400);

	//#if(WINVER >= 0x0400);
	//#if (_WIN32_WINNT >= 0x0400);
	//module.WH_MAX = 14;
	//#else
	module.WH_MAX = 12;
	//#endif // (_WIN32_WINNT >= 0x0400);
	//#else
	//module.WH_MAX = 11;
	//#endif

	module.WH_MINHOOK = module.WH_MIN;
	module.WH_MAXHOOK = module.WH_MAX;

	/*
	 * Hook Codes
	 */
	module.HC_ACTION = 0;
	module.HC_GETNEXT = 1;
	module.HC_SKIP = 2;
	module.HC_NOREMOVE = 3;
	module.HC_NOREM = module.HC_NOREMOVE;
	module.HC_SYSMODALON = 4;
	module.HC_SYSMODALOFF = 5;

	/*
	 * CBT Hook Codes
	 */
	module.HCBT_MOVESIZE = 0;
	module.HCBT_MINMAX = 1;
	module.HCBT_QS = 2;
	module.HCBT_CREATEWND = 3;
	module.HCBT_DESTROYWND = 4;
	module.HCBT_ACTIVATE = 5;
	module.HCBT_CLICKSKIPPED = 6;
	module.HCBT_KEYSKIPPED = 7;
	module.HCBT_SYSCOMMAND = 8;
	module.HCBT_SETFOCUS = 9;


	/*
	 * codes passed in WPARAM for WM_WTSSESSION_CHANGE
	 */

	module.WTS_CONSOLE_CONNECT = 0x1;
	module.WTS_CONSOLE_DISCONNECT = 0x2;
	module.WTS_REMOTE_CONNECT = 0x3;
	module.WTS_REMOTE_DISCONNECT = 0x4;
	module.WTS_SESSION_LOGON = 0x5;
	module.WTS_SESSION_LOGOFF = 0x6;
	module.WTS_SESSION_LOCK = 0x7;
	module.WTS_SESSION_UNLOCK = 0x8;
	module.WTS_SESSION_REMOTE_CONTROL = 0x9;

	//#endif /* _WIN32_WINNT >= 0x0501 */

	/*
	 * WH_MSGFILTER Filter Proc Codes
	 */
	module.MSGF_DIALOGBOX = 0;
	module.MSGF_MESSAGEBOX = 1;
	module.MSGF_MENU = 2;
	module.MSGF_SCROLLBAR = 5;
	module.MSGF_NEXTWINDOW = 6;
	module.MSGF_MAX = 8; //  unused
	module.MSGF_USER = 4096;

	/*
	 * Shell support
	 */
	module.HSHELL_WINDOWCREATED = 1;
	module.HSHELL_WINDOWDESTROYED = 2;
	module.HSHELL_ACTIVATESHELLWINDOW = 3;

	//#if(WINVER >= 0x0400);
	module.HSHELL_WINDOWACTIVATED = 4;
	module.HSHELL_GETMINRECT = 5;
	module.HSHELL_REDRAW = 6;
	module.HSHELL_TASKMAN = 7;
	module.HSHELL_LANGUAGE = 8;
	module.HSHELL_SYSMENU = 9;
	module.HSHELL_ENDTASK = 10;
	//#endif /* WINVER >= 0x0400 */
	//#if(_WIN32_WINNT >= 0x0500);
	module.HSHELL_ACCESSIBILITYSTATE = 11;
	module.HSHELL_APPCOMMAND = 12;
	//#endif /* _WIN32_WINNT >= 0x0500 */

	//#if(_WIN32_WINNT >= 0x0501);
	module.HSHELL_WINDOWREPLACED = 13;
	module.HSHELL_WINDOWREPLACING = 14;
	//#endif /* _WIN32_WINNT >= 0x0501 */


	module.HSHELL_HIGHBIT = 0x8000;
	module.HSHELL_FLASH = (module.HSHELL_REDRAW | module.HSHELL_HIGHBIT);
	module.HSHELL_RUDEAPPACTIVATED = (module.HSHELL_WINDOWACTIVATED | module.HSHELL_HIGHBIT);

	//#if(_WIN32_WINNT >= 0x0500);
	/* wparam for HSHELL_ACCESSIBILITYSTATE */
	module.ACCESS_STICKYKEYS = 0x0001;
	module.ACCESS_FILTERKEYS = 0x0002;
	module.ACCESS_MOUSEKEYS = 0x0003;

	/* cmd for HSHELL_APPCOMMAND and WM_APPCOMMAND */
	module.APPCOMMAND_BROWSER_BACKWARD = 1;
	module.APPCOMMAND_BROWSER_FORWARD = 2;
	module.APPCOMMAND_BROWSER_REFRESH = 3;
	module.APPCOMMAND_BROWSER_STOP = 4;
	module.APPCOMMAND_BROWSER_SEARCH = 5;
	module.APPCOMMAND_BROWSER_FAVORITES = 6;
	module.APPCOMMAND_BROWSER_HOME = 7;
	module.APPCOMMAND_VOLUME_MUTE = 8;
	module.APPCOMMAND_VOLUME_DOWN = 9;
	module.APPCOMMAND_VOLUME_UP = 10;
	module.APPCOMMAND_MEDIA_NEXTTRACK = 11;
	module.APPCOMMAND_MEDIA_PREVIOUSTRACK = 12;
	module.APPCOMMAND_MEDIA_STOP = 13;
	module.APPCOMMAND_MEDIA_PLAY_PAUSE = 14;
	module.APPCOMMAND_LAUNCH_MAIL = 15;
	module.APPCOMMAND_LAUNCH_MEDIA_SELECT = 16;
	module.APPCOMMAND_LAUNCH_APP1 = 17;
	module.APPCOMMAND_LAUNCH_APP2 = 18;
	module.APPCOMMAND_BASS_DOWN = 19;
	module.APPCOMMAND_BASS_BOOST = 20;
	module.APPCOMMAND_BASS_UP = 21;
	module.APPCOMMAND_TREBLE_DOWN = 22;
	module.APPCOMMAND_TREBLE_UP = 23;
	//#if(_WIN32_WINNT >= 0x0501);
	module.APPCOMMAND_MICROPHONE_VOLUME_MUTE = 24;
	module.APPCOMMAND_MICROPHONE_VOLUME_DOWN = 25;
	module.APPCOMMAND_MICROPHONE_VOLUME_UP = 26;
	module.APPCOMMAND_HELP = 27;
	module.APPCOMMAND_FIND = 28;
	module.APPCOMMAND_NEW = 29;
	module.APPCOMMAND_OPEN = 30;
	module.APPCOMMAND_CLOSE = 31;
	module.APPCOMMAND_SAVE = 32;
	module.APPCOMMAND_PRINT = 33;
	module.APPCOMMAND_UNDO = 34;
	module.APPCOMMAND_REDO = 35;
	module.APPCOMMAND_COPY = 36;
	module.APPCOMMAND_CUT = 37;
	module.APPCOMMAND_PASTE = 38;
	module.APPCOMMAND_REPLY_TO_MAIL = 39;
	module.APPCOMMAND_FORWARD_MAIL = 40;
	module.APPCOMMAND_SEND_MAIL = 41;
	module.APPCOMMAND_SPELL_CHECK = 42;
	module.APPCOMMAND_DICTATE_OR_COMMAND_CONTROL_TOGGLE = 43;
	module.APPCOMMAND_MIC_ON_OFF_TOGGLE = 44;
	module.APPCOMMAND_CORRECTION_LIST = 45;
	module.APPCOMMAND_MEDIA_PLAY = 46;
	module.APPCOMMAND_MEDIA_PAUSE = 47;
	module.APPCOMMAND_MEDIA_RECORD = 48;
	module.APPCOMMAND_MEDIA_FAST_FORWARD = 49;
	module.APPCOMMAND_MEDIA_REWIND = 50;
	module.APPCOMMAND_MEDIA_CHANNEL_UP = 51;
	module.APPCOMMAND_MEDIA_CHANNEL_DOWN = 52;
	//#endif /* _WIN32_WINNT >= 0x0501 */

	module.FAPPCOMMAND_MOUSE = 0x8000;
	module.FAPPCOMMAND_KEY = 0;
	module.FAPPCOMMAND_OEM = 0x1000;
	module.FAPPCOMMAND_MASK = 0xF000;

	//#endif /* _WIN32_WINNT >= 0x0500 */


	/*
	 * Keyboard Layout API
	 */
	module.HKL_PREV = 0;
	module.HKL_NEXT = 1;


	module.KLF_ACTIVATE = 0x00000001;
	module.KLF_SUBSTITUTE_OK = 0x00000002;
	module.KLF_REORDER = 0x00000008;
	//#if(WINVER >= 0x0400);
	module.KLF_REPLACELANG = 0x00000010;
	module.KLF_NOTELLSHELL = 0x00000080;
	//#endif /* WINVER >= 0x0400 */
	module.KLF_SETFORPROCESS = 0x00000100;
	//#if(_WIN32_WINNT >= 0x0500);
	module.KLF_SHIFTLOCK = 0x00010000;
	module.KLF_RESET = 0x40000000;
	//#endif /* _WIN32_WINNT >= 0x0500 */


	//#if(WINVER >= 0x0500);
	/*
	 * Bits in wParam of WM_INPUTLANGCHANGEREQUEST message
	 */
	module.INPUTLANGCHANGE_SYSCHARSET = 0x0001;
	module.INPUTLANGCHANGE_FORWARD = 0x0002;
	module.INPUTLANGCHANGE_BACKWARD = 0x0004;
	//#endif /* WINVER >= 0x0500 */


	/*
	 * Size of KeyboardLayoutName (number of characters), including nul terminator
	 */
	module.KL_NAMELENGTH = 9;


	/*
	 * Values for resolution parameter of GetMouseMovePointsEx
	 */
	module.GMMP_USE_DISPLAY_POINTS = 1;
	module.GMMP_USE_HIGH_RESOLUTION_POINTS = 2;


	/*
	 * Desktop-specific access flags
	 */
	module.DESKTOP_READOBJECTS = 0x0001;
	module.DESKTOP_CREATEWINDOW = 0x0002;
	module.DESKTOP_CREATEMENU = 0x0004;
	module.DESKTOP_HOOKCONTROL = 0x0008;
	module.DESKTOP_JOURNALRECORD = 0x0010;
	module.DESKTOP_JOURNALPLAYBACK = 0x0020;
	module.DESKTOP_ENUMERATE = 0x0040;
	module.DESKTOP_WRITEOBJECTS = 0x0080;
	module.DESKTOP_SWITCHDESKTOP = 0x0100;

	/*
	 * Desktop-specific control flags
	 */
	module.DF_ALLOWOTHERACCOUNTHOOK = 0x0001;


	/*
	 * Windowstation-specific access flags
	 */
	module.WINSTA_ENUMDESKTOPS = 0x0001;
	module.WINSTA_READATTRIBUTES = 0x0002;
	module.WINSTA_ACCESSCLIPBOARD = 0x0004;
	module.WINSTA_CREATEDESKTOP = 0x0008;
	module.WINSTA_WRITEATTRIBUTES = 0x0010;
	module.WINSTA_ACCESSGLOBALATOMS = 0x0020;
	module.WINSTA_EXITWINDOWS = 0x0040;
	module.WINSTA_ENUMERATE = 0x0100;
	module.WINSTA_READSCREEN = 0x0200;

	module.WINSTA_ALL_ACCESS = (module.WINSTA_ENUMDESKTOPS | module.WINSTA_READATTRIBUTES | module.WINSTA_ACCESSCLIPBOARD | module.WINSTA_CREATEDESKTOP | module.WINSTA_WRITEATTRIBUTES | module.WINSTA_ACCESSGLOBALATOMS | module.WINSTA_EXITWINDOWS | module.WINSTA_ENUMERATE | module.WINSTA_READSCREEN);

	/*
	 * Windowstation creation flags.
	 */
	module.CWF_CREATE_ONLY = 0x0001;

	/*
	 * Windowstation-specific attribute flags
	 */
	module.WSF_VISIBLE = 0x0001;


	module.UOI_FLAGS = 1;
	module.UOI_NAME = 2;
	module.UOI_TYPE = 3;
	module.UOI_USER_SID = 4;


	/*
	 * Window field offsets for GetWindowLong()
	 */
	module.GWL_WNDPROC = (-4);
	module.GWL_HINSTANCE = (-6);
	module.GWL_HWNDPARENT = (-8);
	module.GWL_STYLE = (-16);
	module.GWL_EXSTYLE = (-20);
	module.GWL_USERDATA = (-21);
	module.GWL_ID = (-12);


	module.GWLP_WNDPROC = (-4);
	module.GWLP_HINSTANCE = (-6);
	module.GWLP_HWNDPARENT = (-8);
	module.GWLP_USERDATA = (-21);
	module.GWLP_ID = (-12);


	/*
	 * Class field offsets for GetClassLong()
	 */
	module.GCL_MENUNAME = (-8);
	module.GCL_HBRBACKGROUND = (-10);
	module.GCL_HCURSOR = (-12);
	module.GCL_HICON = (-14);
	module.GCL_HMODULE = (-16);
	module.GCL_CBWNDEXTRA = (-18);
	module.GCL_CBCLSEXTRA = (-20);
	module.GCL_WNDPROC = (-24);
	module.GCL_STYLE = (-26);
	module.GCW_ATOM = (-32);


	//#if(WINVER >= 0x0400);
	module.GCL_HICONSM = (-34);
	//#endif /* WINVER >= 0x0400 */



	module.GCLP_MENUNAME = (-8);
	module.GCLP_HBRBACKGROUND = (-10);
	module.GCLP_HCURSOR = (-12);
	module.GCLP_HICON = (-14);
	module.GCLP_HMODULE = (-16);
	module.GCLP_WNDPROC = (-24);
	module.GCLP_HICONSM = (-34);

	module.UINT_MAX = 0xffffffff;//limit.h

	module.WM_NULL = 0x0000;
	module.WM_CREATE = 0x0001;
	module.WM_DESTROY = 0x0002;
	module.WM_MOVE = 0x0003;
	module.WM_SIZE = 0x0005;

	module.WM_ACTIVATE = 0x0006;
	/*;
	 * WM_ACTIVATE state values;
	 */
	module.WM_SETFOCUS = 0x0007;
	module.WM_KILLFOCUS = 0x0008;
	module.WM_ENABLE = 0x000A;
	module.WM_SETREDRAW = 0x000B;
	module.WM_SETTEXT = 0x000C;
	module.WM_GETTEXT = 0x000D;
	module.WM_GETTEXTLENGTH = 0x000E;
	module.WM_PAINT = 0x000F;
	module.WM_CLOSE = 0x0010;
	module.WM_QUERYENDSESSION = 0x0011;
	module.WM_QUIT = 0x0012;
	module.WM_QUERYOPEN = 0x0013;
	module.WM_ERASEBKGND = 0x0014;
	module.WM_SYSCOLORCHANGE = 0x0015;
	module.WM_ENDSESSION = 0x0016;
	module.WM_SHOWWINDOW = 0x0018;
	module.WM_WININICHANGE = 0x001A;
	//#if(WINVER >= 0x0400);
	module.WM_SETTINGCHANGE = module.WM_WININICHANGE;
	module.WM_DEVMODECHANGE = 0x001B;
	module.WM_ACTIVATEAPP = 0x001C;
	module.WM_FONTCHANGE = 0x001D;
	module.WM_TIMECHANGE = 0x001E;
	module.WM_CANCELMODE = 0x001F;
	module.WM_SETCURSOR = 0x0020;
	module.WM_MOUSEACTIVATE = 0x0021;
	module.WM_CHILDACTIVATE = 0x0022;
	module.WM_QUEUESYNC = 0x0023;
	module.WM_GETMINMAXINFO = 0x0024;
	// end_r_winuser;
	// begin_r_winuser;
	module.WM_PAINTICON = 0x0026;
	module.WM_ICONERASEBKGND = 0x0027;
	module.WM_NEXTDLGCTL = 0x0028;
	module.WM_SPOOLERSTATUS = 0x002A;
	module.WM_DRAWITEM = 0x002B;
	module.WM_MEASUREITEM = 0x002C;
	module.WM_DELETEITEM = 0x002D;
	module.WM_VKEYTOITEM = 0x002E;
	module.WM_CHARTOITEM = 0x002F;
	module.WM_SETFONT = 0x0030;
	module.WM_GETFONT = 0x0031;
	module.WM_SETHOTKEY = 0x0032;
	module.WM_GETHOTKEY = 0x0033;
	module.WM_QUERYDRAGICON = 0x0037;
	module.WM_COMPAREITEM = 0x0039;
	//#if(WINVER >= 0x0500);
	module.WM_GETOBJECT = 0x003D;
	//#endif /* WINVER >= 0x0500 */;
	module.WM_COMPACTING = 0x0041;
	module.WM_COMMNOTIFY = 0x0044; /* no longer suported */
	module.WM_WINDOWPOSCHANGING = 0x0046;
	module.WM_WINDOWPOSCHANGED = 0x0047;

	module.WM_POWER = 0x0048;
	/*;
	 * wParam for WM_POWER window message and DRV_POWER driver notification;
	 */
	module.PWR_OK = 1;
	module.PWR_FAIL = (-1);
	module.PWR_SUSPENDREQUEST = 1;
	module.PWR_SUSPENDRESUME = 2;
	module.PWR_CRITICALRESUME = 3;

	module.WM_COPYDATA = 0x004A;
	module.WM_CANCELJOURNAL = 0x004B;

	// end_r_winuser;

	/*;
	 * lParam of WM_COPYDATA message points to...;
	 */

	// begin_r_winuser;

	//#if(WINVER >= 0x0400);
	module.WM_NOTIFY = 0x004E;
	module.WM_INPUTLANGCHANGEREQUEST = 0x0050;
	module.WM_INPUTLANGCHANGE = 0x0051;
	module.WM_TCARD = 0x0052;
	module.WM_HELP = 0x0053;
	module.WM_USERCHANGED = 0x0054;
	module.WM_NOTIFYFORMAT = 0x0055;

	module.NFR_ANSI = 1;
	module.NFR_UNICODE = 2;
	module.NF_QUERY = 3;
	module.NF_REQUERY = 4;

	module.WM_CONTEXTMENU = 0x007B;
	module.WM_STYLECHANGING = 0x007C;
	module.WM_STYLECHANGED = 0x007D;
	module.WM_DISPLAYCHANGE = 0x007E;
	module.WM_GETICON = 0x007F;
	module.WM_SETICON = 0x0080;
	//#endif /* WINVER >= 0x0400 */;

	module.WM_NCCREATE = 0x0081;
	module.WM_NCDESTROY = 0x0082;
	module.WM_NCCALCSIZE = 0x0083;
	module.WM_NCHITTEST = 0x0084;
	module.WM_NCPAINT = 0x0085;
	module.WM_NCACTIVATE = 0x0086;
	module.WM_GETDLGCODE = 0x0087;
	module.WM_SYNCPAINT = 0x0088;
	module.WM_NCMOUSEMOVE = 0x00A0;
	module.WM_NCLBUTTONDOWN = 0x00A1;
	module.WM_NCLBUTTONUP = 0x00A2;
	module.WM_NCLBUTTONDBLCLK = 0x00A3;
	module.WM_NCRBUTTONDOWN = 0x00A4;
	module.WM_NCRBUTTONUP = 0x00A5;
	module.WM_NCRBUTTONDBLCLK = 0x00A6;
	module.WM_NCMBUTTONDOWN = 0x00A7;
	module.WM_NCMBUTTONUP = 0x00A8;
	module.WM_NCMBUTTONDBLCLK = 0x00A9;

	module.WM_KEYFIRST = 0x0100;
	module.WM_KEYDOWN = 0x0100;
	module.WM_KEYUP = 0x0101;
	module.WM_CHAR = 0x0102;
	module.WM_DEADCHAR = 0x0103;
	module.WM_SYSKEYDOWN = 0x0104;
	module.WM_SYSKEYUP = 0x0105;
	module.WM_SYSCHAR = 0x0106;
	module.WM_SYSDEADCHAR = 0x0107;
	module.WM_KEYLAST = 0x0108;

	//#if(WINVER >= 0x0400);
	module.WM_IME_STARTCOMPOSITION = 0x010D;
	module.WM_IME_ENDCOMPOSITION = 0x010E;
	module.WM_IME_COMPOSITION = 0x010F;
	module.WM_IME_KEYLAST = 0x010F;
	//#endif /* WINVER >= 0x0400 */

	module.WM_INITDIALOG = 0x0110;
	module.WM_COMMAND = 0x0111;
	module.WM_SYSCOMMAND = 0x0112;
	module.WM_TIMER = 0x0113;
	module.WM_HSCROLL = 0x0114;
	module.WM_VSCROLL = 0x0115;
	module.WM_INITMENU = 0x0116;
	module.WM_INITMENUPOPUP = 0x0117;
	module.WM_MENUSELECT = 0x011F;
	module.WM_MENUCHAR = 0x0120;
	module.WM_ENTERIDLE = 0x0121;
	//#if(WINVER >= 0x0500);
	module.WM_MENURBUTTONUP = 0x0122;
	module.WM_MENUDRAG = 0x0123;
	module.WM_MENUGETOBJECT = 0x0124;
	module.WM_UNINITMENUPOPUP = 0x0125;
	module.WM_MENUCOMMAND = 0x0126;
	//#endif /* WINVER >= 0x0500 */;


	module.WM_CTLCOLORMSGBOX = 0x0132;
	module.WM_CTLCOLOREDIT = 0x0133;
	module.WM_CTLCOLORLISTBOX = 0x0134;
	module.WM_CTLCOLORBTN = 0x0135;
	module.WM_CTLCOLORDLG = 0x0136;
	module.WM_CTLCOLORSCROLLBAR = 0x0137;
	module.WM_CTLCOLORSTATIC = 0x0138;


	module.WM_MOUSEFIRST = 0x0200;
	module.WM_MOUSEMOVE = 0x0200;
	module.WM_LBUTTONDOWN = 0x0201;
	module.WM_LBUTTONUP = 0x0202;
	module.WM_LBUTTONDBLCLK = 0x0203;
	module.WM_RBUTTONDOWN = 0x0204;
	module.WM_RBUTTONUP = 0x0205;
	module.WM_RBUTTONDBLCLK = 0x0206;
	module.WM_MBUTTONDOWN = 0x0207;
	module.WM_MBUTTONUP = 0x0208;
	module.WM_MBUTTONDBLCLK = 0x0209;

	//#if (_WIN32_WINNT >= 0x0400) || (_WIN32_WINDOWS > 0x0400);
	module.WM_MOUSEWHEEL = 0x020A;
	module.WM_MOUSELAST = 0x020A;
	//#else;
	//module.WM_MOUSELAST = 0x0209;
	//#endif /* if (_WIN32_WINNT < 0x0400) */;

	//#if(_WIN32_WINNT >= 0x0400);
	module.WHEEL_DELTA = 120;/* Value for rolling one detent */
	//#endif /* _WIN32_WINNT >= 0x0400 */;
	//#if(_WIN32_WINNT >= 0x0400);
	module.WHEEL_PAGESCROLL = (module.UINT_MAX); /* Scroll one page */
	//#endif /* _WIN32_WINNT >= 0x0400 */;

	module.WM_PARENTNOTIFY = 0x0210;
	module.WM_ENTERMENULOOP = 0x0211;
	module.WM_EXITMENULOOP = 0x0212;

	//#if(WINVER >= 0x0400);
	module.WM_NEXTMENU = 0x0213;
	// end_r_winuser;

	// begin_r_winuser;
	module.WM_SIZING = 0x0214;
	module.WM_CAPTURECHANGED = 0x0215;
	module.WM_MOVING = 0x0216;
	// end_r_winuser;
	module.WM_POWERBROADCAST = 0x0218;// r_winuser pbt;
	// begin_pbt;

	module.PBT_APMQUERYSUSPEND = 0x0000;
	module.PBT_APMQUERYSTANDBY = 0x0001;

	module.PBT_APMQUERYSUSPENDFAILED = 0x0002;
	module.PBT_APMQUERYSTANDBYFAILED = 0x0003;

	module.PBT_APMSUSPEND = 0x0004;
	module.PBT_APMSTANDBY = 0x0005;

	module.PBT_APMRESUMECRITICAL = 0x0006;
	module.PBT_APMRESUMESUSPEND = 0x0007;
	module.PBT_APMRESUMESTANDBY = 0x0008;

	module.PBTF_APMRESUMEFROMFAILURE = 0x00000001;

	module.PBT_APMBATTERYLOW = 0x0009;
	module.PBT_APMPOWERSTATUSCHANGE = 0x000A;

	module.PBT_APMOEMEVENT = 0x000B;
	module.PBT_APMRESUMEAUTOMATIC = 0x0012;
	// end_pbt;

	// begin_r_winuser;
	module.WM_DEVICECHANGE = 0x0219;

	//#endif /* WINVER >= 0x0400 */;

	module.WM_MDICREATE = 0x0220;
	module.WM_MDIDESTROY = 0x0221;
	module.WM_MDIACTIVATE = 0x0222;
	module.WM_MDIRESTORE = 0x0223;
	module.WM_MDINEXT = 0x0224;
	module.WM_MDIMAXIMIZE = 0x0225;
	module.WM_MDITILE = 0x0226;
	module.WM_MDICASCADE = 0x0227;
	module.WM_MDIICONARRANGE = 0x0228;
	module.WM_MDIGETACTIVE = 0x0229;


	module.WM_MDISETMENU = 0x0230;
	module.WM_ENTERSIZEMOVE = 0x0231;
	module.WM_EXITSIZEMOVE = 0x0232;
	module.WM_DROPFILES = 0x0233;
	module.WM_MDIREFRESHMENU = 0x0234;


	//#if(WINVER >= 0x0400);
	module.WM_IME_SETCONTEXT = 0x0281;
	module.WM_IME_NOTIFY = 0x0282;
	module.WM_IME_CONTROL = 0x0283;
	module.WM_IME_COMPOSITIONFULL = 0x0284;
	module.WM_IME_SELECT = 0x0285;
	module.WM_IME_CHAR = 0x0286;
	//#endif /* WINVER >= 0x0400 */;
	//#if(WINVER >= 0x0500);
	module.WM_IME_REQUEST = 0x0288;
	//#endif /* WINVER >= 0x0500 */;
	//#if(WINVER >= 0x0400);
	module.WM_IME_KEYDOWN = 0x0290;
	module.WM_IME_KEYUP = 0x0291;
	//#endif /* WINVER >= 0x0400 */;


	//#if(_WIN32_WINNT >= 0x0400);
	module.WM_MOUSEHOVER = 0x02A1;
	module.WM_MOUSELEAVE = 0x02A3;
	//#endif /* _WIN32_WINNT >= 0x0400 */;

	module.WM_NCMOUSEHOVER = 0x02A0;
	module.WM_NCMOUSELEAVE = 0x02A2;

	module.WM_CUT = 0x0300;
	module.WM_COPY = 0x0301;
	module.WM_PASTE = 0x0302;
	module.WM_CLEAR = 0x0303;
	module.WM_UNDO = 0x0304;
	module.WM_RENDERFORMAT = 0x0305;
	module.WM_RENDERALLFORMATS = 0x0306;
	module.WM_DESTROYCLIPBOARD = 0x0307;
	module.WM_DRAWCLIPBOARD = 0x0308;
	module.WM_PAINTCLIPBOARD = 0x0309;
	module.WM_VSCROLLCLIPBOARD = 0x030A;
	module.WM_SIZECLIPBOARD = 0x030B;
	module.WM_ASKCBFORMATNAME = 0x030C;
	module.WM_CHANGECBCHAIN = 0x030D;
	module.WM_HSCROLLCLIPBOARD = 0x030E;
	module.WM_QUERYNEWPALETTE = 0x030F;
	module.WM_PALETTEISCHANGING = 0x0310;
	module.WM_PALETTECHANGED = 0x0311;
	module.WM_HOTKEY = 0x0312;

	//#if(WINVER >= 0x0400);
	module.WM_PRINT = 0x0317;
	module.WM_PRINTCLIENT = 0x0318;

	module.WM_HANDHELDFIRST = 0x0358;
	module.WM_HANDHELDLAST = 0x035F;

	module.WM_AFXFIRST = 0x0360;
	module.WM_AFXLAST = 0x037F;
	//#endif /* WINVER >= 0x0400 */;

	module.WM_PENWINFIRST = 0x0380;
	module.WM_PENWINLAST = 0x038F;


	//#if(WINVER >= 0x0400);
	module.WM_APP = 0x8000;
	//#endif /* WINVER >= 0x0400 */;

	/*;
	 * NOTE: All Message Numbers below 0x0400 are RESERVED.;
	 *;
	 * Private Window Messages Start Here:;
	 */
	module.WM_USER = 0x0400;

	/* = wParam for WM_SIZING message = */
	module.WMSZ_LEFT = 1;
	module.WMSZ_RIGHT = 2;
	module.WMSZ_TOP = 3;
	module.WMSZ_TOPLEFT = 4;
	module.WMSZ_TOPRIGHT = 5;
	module.WMSZ_BOTTOM = 6;
	module.WMSZ_BOTTOMLEFT = 7;
	module.WMSZ_BOTTOMRIGHT = 8;
	//#endif /* WINVER >= 0x0400 */


	/*
	 * WM_NCHITTEST and MOUSEHOOKSTRUCT Mouse Position Codes
	 */
	module.HTERROR = (-2);
	module.HTTRANSPARENT = (-1);
	module.HTNOWHERE = 0;
	module.HTCLIENT = 1;
	module.HTCAPTION = 2;
	module.HTSYSMENU = 3;
	module.HTGROWBOX = 4;
	module.HTSIZE = module.HTGROWBOX;
	module.HTMENU = 5;
	module.HTHSCROLL = 6;
	module.HTVSCROLL = 7;
	module.HTMINBUTTON = 8;
	module.HTMAXBUTTON = 9;
	module.HTLEFT = 10;
	module.HTRIGHT = 11;
	module.HTTOP = 12;
	module.HTTOPLEFT = 13;
	module.HTTOPRIGHT = 14;
	module.HTBOTTOM = 15;
	module.HTBOTTOMLEFT = 16;
	module.HTBOTTOMRIGHT = 17;
	module.HTBORDER = 18;
	module.HTREDUCE = module.HTMINBUTTON;
	module.HTZOOM = module.HTMAXBUTTON;
	module.HTSIZEFIRST = module.HTLEFT;
	module.HTSIZELAST = module.HTBOTTOMRIGHT;
	//#if(WINVER >= 0x0400);
	module.HTOBJECT = 19;
	module.HTCLOSE = 20;
	module.HTHELP = 21;
	//#endif /* WINVER >= 0x0400 */


	/*
	 * SendMessageTimeout values
	 */
	module.SMTO_NORMAL = 0x0000;
	module.SMTO_BLOCK = 0x0001;
	module.SMTO_ABORTIFHUNG = 0x0002;
	//#if(WINVER >= 0x0500);
	module.SMTO_NOTIMEOUTIFNOTHUNG = 0x0008;
	//#endif /* WINVER >= 0x0500 */
	//#endif /* !NONCMESSAGES */

	/*
	 * WM_MOUSEACTIVATE Return Codes
	 */
	module.MA_ACTIVATE = 1;
	module.MA_ACTIVATEANDEAT = 2;
	module.MA_NOACTIVATE = 3;
	module.MA_NOACTIVATEANDEAT = 4;

	/*
	 * WM_SETICON / WM_GETICON Type Codes
	 */
	module.ICON_SMALL = 0;
	module.ICON_BIG = 1;
	//#if(_WIN32_WINNT >= 0x0501);
	module.ICON_SMALL2 = 2;
	//#endif /* _WIN32_WINNT >= 0x0501 */



	/*
	 * WM_SIZE message wParam values
	 */
	module.SIZE_RESTORED = 0;
	module.SIZE_MINIMIZED = 1;
	module.SIZE_MAXIMIZED = 2;
	module.SIZE_MAXSHOW = 3;
	module.SIZE_MAXHIDE = 4;

	/*
	 * Obsolete constant names
	 */
	module.SIZENORMAL = module.SIZE_RESTORED;
	module.SIZEICONIC = module.SIZE_MINIMIZED;
	module.SIZEFULLSCREEN = module.SIZE_MAXIMIZED;
	module.SIZEZOOMSHOW = module.SIZE_MAXSHOW;
	module.SIZEZOOMHIDE = module.SIZE_MAXHIDE;


	/*
	 * WM_NCCALCSIZE "window valid rect" return values
	 */
	module.WVR_ALIGNTOP = 0x0010;
	module.WVR_ALIGNLEFT = 0x0020;
	module.WVR_ALIGNBOTTOM = 0x0040;
	module.WVR_ALIGNRIGHT = 0x0080;
	module.WVR_HREDRAW = 0x0100;
	module.WVR_VREDRAW = 0x0200;
	module.WVR_REDRAW = (module.WVR_HREDRAW | module.WVR_VREDRAW);
	module.WVR_VALIDRECTS = 0x0400;


	/*
	 * Key State Masks for Mouse Messages
	 */
	module.MK_LBUTTON = 0x0001;
	module.MK_RBUTTON = 0x0002;
	module.MK_SHIFT = 0x0004;
	module.MK_CONTROL = 0x0008;
	module.MK_MBUTTON = 0x0010;
	//#if(_WIN32_WINNT >= 0x0500);
	module.MK_XBUTTON1 = 0x0020;
	module.MK_XBUTTON2 = 0x0040;
	//#endif /* _WIN32_WINNT >= 0x0500 */

	//#endif /* !NOKEYSTATES */


	//#if(_WIN32_WINNT >= 0x0400);
	//#ifndef NOTRACKMOUSEEVENT

	module.TME_HOVER = 0x00000001;
	module.TME_LEAVE = 0x00000002;
	//#if(WINVER >= 0x0500);
	module.TME_NONCLIENT = 0x00000010;
	//#endif /* WINVER >= 0x0500 */
	module.TME_QUERY = 0x40000000;
	module.TME_CANCEL = 0x80000000;


	module.HOVER_DEFAULT = 0xFFFFFFFF;
	//#endif /* _WIN32_WINNT >= 0x0400 */


	/*
	 * Window Styles
	 */
	module.WS_OVERLAPPED = 0x00000000;
	module.WS_POPUP = 0x80000000;
	module.WS_CHILD = 0x40000000;
	module.WS_MINIMIZE = 0x20000000;
	module.WS_VISIBLE = 0x10000000;
	module.WS_DISABLED = 0x08000000;
	module.WS_CLIPSIBLINGS = 0x04000000;
	module.WS_CLIPCHILDREN = 0x02000000;
	module.WS_MAXIMIZE = 0x01000000;
	module.WS_CAPTION = 0x00C00000; /* WS_BORDER | WS_DLGFRAME = */
	module.WS_BORDER = 0x00800000;
	module.WS_DLGFRAME = 0x00400000;
	module.WS_VSCROLL = 0x00200000;
	module.WS_HSCROLL = 0x00100000;
	module.WS_SYSMENU = 0x00080000;
	module.WS_THICKFRAME = 0x00040000;
	module.WS_GROUP = 0x00020000;
	module.WS_TABSTOP = 0x00010000;

	module.WS_MINIMIZEBOX = 0x00020000;
	module.WS_MAXIMIZEBOX = 0x00010000;


	module.WS_TILED = module.WS_OVERLAPPED;
	module.WS_ICONIC = module.WS_MINIMIZE;
	module.WS_SIZEBOX = module.WS_THICKFRAME;
	module.WS_TILEDWINDOW = module.WS_OVERLAPPEDWINDOW;

	/*
	 * Common Window Styles
	 */
	module.WS_OVERLAPPEDWINDOW = (module.WS_OVERLAPPED | module.WS_CAPTION | module.WS_SYSMENU | module.WS_THICKFRAME | module.WS_MINIMIZEBOX | module.WS_MAXIMIZEBOX);

	module.WS_POPUPWINDOW = (module.WS_POPUP | module.WS_BORDER | module.WS_SYSMENU);

	module.WS_CHILDWINDOW = (module.WS_CHILD);

	/*
	 * Extended Window Styles
	 */
	module.WS_EX_DLGMODALFRAME = 0x00000001;
	module.WS_EX_NOPARENTNOTIFY = 0x00000004;
	module.WS_EX_TOPMOST = 0x00000008;
	module.WS_EX_ACCEPTFILES = 0x00000010;
	module.WS_EX_TRANSPARENT = 0x00000020;
	//#if(WINVER >= 0x0400);
	module.WS_EX_MDICHILD = 0x00000040;
	module.WS_EX_TOOLWINDOW = 0x00000080;
	module.WS_EX_WINDOWEDGE = 0x00000100;
	module.WS_EX_CLIENTEDGE = 0x00000200;
	module.WS_EX_CONTEXTHELP = 0x00000400;

	//#endif /* WINVER >= 0x0400 */
	//#if(WINVER >= 0x0400);

	module.WS_EX_RIGHT = 0x00001000;
	module.WS_EX_LEFT = 0x00000000;
	module.WS_EX_RTLREADING = 0x00002000;
	module.WS_EX_LTRREADING = 0x00000000;
	module.WS_EX_LEFTSCROLLBAR = 0x00004000;
	module.WS_EX_RIGHTSCROLLBAR = 0x00000000;

	module.WS_EX_CONTROLPARENT = 0x00010000;
	module.WS_EX_STATICEDGE = 0x00020000;
	module.WS_EX_APPWINDOW = 0x00040000;


	module.WS_EX_OVERLAPPEDWINDOW = (module.WS_EX_WINDOWEDGE | module.WS_EX_CLIENTEDGE);
	module.WS_EX_PALETTEWINDOW = (module.WS_EX_WINDOWEDGE | module.WS_EX_TOOLWINDOW | module.WS_EX_TOPMOST);

	//#endif /* WINVER >= 0x0400 */

	//#if(_WIN32_WINNT >= 0x0500);
	module.WS_EX_LAYERED = 0x00080000;

	//#endif /* _WIN32_WINNT >= 0x0500 */


	//#if(WINVER >= 0x0500);
	module.WS_EX_NOINHERITLAYOUT = 0x00100000; // Disable inheritence of mirroring by children
	module.WS_EX_LAYOUTRTL = 0x00400000; // Right to left mirroring
	//#endif /* WINVER >= 0x0500 */

	//#if(_WIN32_WINNT >= 0x0501);
	module.WS_EX_COMPOSITED = 0x02000000;
	//#endif /* _WIN32_WINNT >= 0x0501 */
	//#if(_WIN32_WINNT >= 0x0500);
	module.WS_EX_NOACTIVATE = 0x08000000;
	//#endif /* _WIN32_WINNT >= 0x0500 */


	/*
	 * Class styles
	 */
	module.CS_VREDRAW = 0x0001;
	module.CS_HREDRAW = 0x0002;
	module.CS_DBLCLKS = 0x0008;
	module.CS_OWNDC = 0x0020;
	module.CS_CLASSDC = 0x0040;
	module.CS_PARENTDC = 0x0080;
	module.CS_NOCLOSE = 0x0200;
	module.CS_SAVEBITS = 0x0800;
	module.CS_BYTEALIGNCLIENT = 0x1000;
	module.CS_BYTEALIGNWINDOW = 0x2000;
	module.CS_GLOBALCLASS = 0x4000;

	module.CS_IME = 0x00010000;
	//#if(_WIN32_WINNT >= 0x0501);
	module.CS_DROPSHADOW = 0x00020000;
	//#endif /* _WIN32_WINNT >= 0x0501 */



	//#endif /* !NOWINSTYLES */
	//#if(WINVER >= 0x0400);
	/* WM_PRINT flags */
	module.PRF_CHECKVISIBLE = 0x00000001;
	module.PRF_NONCLIENT = 0x00000002;
	module.PRF_CLIENT = 0x00000004;
	module.PRF_ERASEBKGND = 0x00000008;
	module.PRF_CHILDREN = 0x00000010;
	module.PRF_OWNED = 0x00000020;

	/* 3D border styles */
	module.BDR_RAISEDOUTER = 0x0001;
	module.BDR_SUNKENOUTER = 0x0002;
	module.BDR_RAISEDINNER = 0x0004;
	module.BDR_SUNKENINNER = 0x0008;

	module.BDR_OUTER = (module.BDR_RAISEDOUTER | module.BDR_SUNKENOUTER);
	module.BDR_INNER = (module.BDR_RAISEDINNER | module.BDR_SUNKENINNER);
	module.BDR_RAISED = (module.BDR_RAISEDOUTER | module.BDR_RAISEDINNER);
	module.BDR_SUNKEN = (module.BDR_SUNKENOUTER | module.BDR_SUNKENINNER);


	module.EDGE_RAISED = (module.BDR_RAISEDOUTER | module.BDR_RAISEDINNER);
	module.EDGE_SUNKEN = (module.BDR_SUNKENOUTER | module.BDR_SUNKENINNER);
	module.EDGE_ETCHED = (module.BDR_SUNKENOUTER | module.BDR_RAISEDINNER);
	module.EDGE_BUMP = (module.BDR_RAISEDOUTER | module.BDR_SUNKENINNER);

	/* Border flags */
	module.BF_LEFT = 0x0001;
	module.BF_TOP = 0x0002;
	module.BF_RIGHT = 0x0004;
	module.BF_BOTTOM = 0x0008;

	module.BF_TOPLEFT = (module.BF_TOP | module.BF_LEFT);
	module.BF_TOPRIGHT = (module.BF_TOP | module.BF_RIGHT);
	module.BF_BOTTOMLEFT = (module.BF_BOTTOM | module.BF_LEFT);
	module.BF_BOTTOMRIGHT = (module.BF_BOTTOM | module.BF_RIGHT);
	module.BF_RECT = (module.BF_LEFT | module.BF_TOP | module.BF_RIGHT | module.BF_BOTTOM);

	module.BF_DIAGONAL = 0x0010;

	// For diagonal lines, the BF_RECT flags specify the end point of the
	// vector bounded by the rectangle parameter.
	module.BF_DIAGONAL_ENDTOPRIGHT = (module.BF_DIAGONAL | module.BF_TOP | module.BF_RIGHT);
	module.BF_DIAGONAL_ENDTOPLEFT = (module.BF_DIAGONAL | module.BF_TOP | module.BF_LEFT);
	module.BF_DIAGONAL_ENDBOTTOMLEFT = (module.BF_DIAGONAL | module.BF_BOTTOM | module.BF_LEFT);
	module.BF_DIAGONAL_ENDBOTTOMRIGHT = (module.BF_DIAGONAL | module.BF_BOTTOM | module.BF_RIGHT);


	module.BF_MIDDLE = 0x0800; /* Fill in the middle */
	module.BF_SOFT = 0x1000; /* For softer buttons */
	module.BF_ADJUST = 0x2000; /* Calculate the space left over */
	module.BF_FLAT = 0x4000; /* For flat rather than 3D borders */
	module.BF_MONO = 0x8000; /* For monochrome borders */



	/* flags for DrawFrameControl */

	module.DFC_CAPTION = 1;
	module.DFC_MENU = 2;
	module.DFC_SCROLL = 3;
	module.DFC_BUTTON = 4;
	//#if(WINVER >= 0x0500);
	module.DFC_POPUPMENU = 5;
	//#endif /* WINVER >= 0x0500 */

	module.DFCS_CAPTIONCLOSE = 0x0000;
	module.DFCS_CAPTIONMIN = 0x0001;
	module.DFCS_CAPTIONMAX = 0x0002;
	module.DFCS_CAPTIONRESTORE = 0x0003;
	module.DFCS_CAPTIONHELP = 0x0004;

	module.DFCS_MENUARROW = 0x0000;
	module.DFCS_MENUCHECK = 0x0001;
	module.DFCS_MENUBULLET = 0x0002;
	module.DFCS_MENUARROWRIGHT = 0x0004;
	module.DFCS_SCROLLUP = 0x0000;
	module.DFCS_SCROLLDOWN = 0x0001;
	module.DFCS_SCROLLLEFT = 0x0002;
	module.DFCS_SCROLLRIGHT = 0x0003;
	module.DFCS_SCROLLCOMBOBOX = 0x0005;
	module.DFCS_SCROLLSIZEGRIP = 0x0008;
	module.DFCS_SCROLLSIZEGRIPRIGHT = 0x0010;

	module.DFCS_BUTTONCHECK = 0x0000;
	module.DFCS_BUTTONRADIOIMAGE = 0x0001;
	module.DFCS_BUTTONRADIOMASK = 0x0002;
	module.DFCS_BUTTONRADIO = 0x0004;
	module.DFCS_BUTTON3STATE = 0x0008;
	module.DFCS_BUTTONPUSH = 0x0010;

	module.DFCS_INACTIVE = 0x0100;
	module.DFCS_PUSHED = 0x0200;
	module.DFCS_CHECKED = 0x0400;

	//#if(WINVER >= 0x0500);
	module.DFCS_TRANSPARENT = 0x0800;
	module.DFCS_HOT = 0x1000;
	//#endif /* WINVER >= 0x0500 */

	module.DFCS_ADJUSTRECT = 0x2000;
	module.DFCS_FLAT = 0x4000;
	module.DFCS_MONO = 0x8000;


	/* flags for DrawCaption */
	module.DC_ACTIVE = 0x0001;
	module.DC_SMALLCAP = 0x0002;
	module.DC_ICON = 0x0004;
	module.DC_TEXT = 0x0008;
	module.DC_INBUTTON = 0x0010;
	//#if(WINVER >= 0x0500);
	module.DC_GRADIENT = 0x0020;
	//#endif /* WINVER >= 0x0500 */
	//#if(_WIN32_WINNT >= 0x0501);
	module.DC_BUTTONS = 0x1000;
	//#endif /* _WIN32_WINNT >= 0x0501 */




	module.IDANI_OPEN = 1;
	module.IDANI_CAPTION = 3;



	//#endif /* WINVER >= 0x0400 */

	//#ifndef NOCLIPBOARD


	/*
	 * Predefined Clipboard Formats
	 */
	module.CF_TEXT = 1;
	module.CF_BITMAP = 2;
	module.CF_METAFILEPICT = 3;
	module.CF_SYLK = 4;
	module.CF_DIF = 5;
	module.CF_TIFF = 6;
	module.CF_OEMTEXT = 7;
	module.CF_DIB = 8;
	module.CF_PALETTE = 9;
	module.CF_PENDATA = 10;
	module.CF_RIFF = 11;
	module.CF_WAVE = 12;
	module.CF_UNICODETEXT = 13;
	module.CF_ENHMETAFILE = 14;
	//#if(WINVER >= 0x0400);
	module.CF_HDROP = 15;
	module.CF_LOCALE = 16;
	//#endif /* WINVER >= 0x0400 */
	//#if(WINVER >= 0x0500);
	module.CF_DIBV5 = 17;
	//#endif /* WINVER >= 0x0500 */

	//..WINVER
	//#if(WINVER >= 0x0500);
	module.CF_MAX = 18;
	//#elif(WINVER >= 0x0400);
	//module.CF_MAX = 17;
	////#else
	//module.CF_MAX = 15;
	//#endif

	module.CF_OWNERDISPLAY = 0x0080;
	module.CF_DSPTEXT = 0x0081;
	module.CF_DSPBITMAP = 0x0082;
	module.CF_DSPMETAFILEPICT = 0x0083;
	module.CF_DSPENHMETAFILE = 0x008E;

	/*
	 * "Private" formats don't get GlobalFree()'d
	 */
	module.CF_PRIVATEFIRST = 0x0200;
	module.CF_PRIVATELAST = 0x02FF;

	/*
	 * "GDIOBJ" formats do get DeleteObject()'d
	 */
	module.CF_GDIOBJFIRST = 0x0300;
	module.CF_GDIOBJLAST = 0x03FF;


	//#endif /* !NOCLIPBOARD */

	/*
	 * Defines for the fVirt field of the Accelerator table structure.
	 */
	module.FVIRTKEY = 1; /* Assumed to be == TRUE */
	module.FNOINVERT = 0x02;
	module.FSHIFT = 0x04;
	module.FCONTROL = 0x08;
	module.FALT = 0x10;


	module.WPF_SETMINPOSITION = 0x0001;
	module.WPF_RESTORETOMAXIMIZED = 0x0002;
	//#if(_WIN32_WINNT >= 0x0500);
	module.WPF_ASYNCWINDOWPLACEMENT = 0x0004;
	//#endif /* _WIN32_WINNT >= 0x0500 */


	/*
	 * Owner draw control types
	 */
	module.ODT_MENU = 1;
	module.ODT_LISTBOX = 2;
	module.ODT_COMBOBOX = 3;
	module.ODT_BUTTON = 4;
	//#if(WINVER >= 0x0400);
	module.ODT_STATIC = 5;
	//#endif /* WINVER >= 0x0400 */

	/*
	 * Owner draw actions
	 */
	module.ODA_DRAWENTIRE = 0x0001;
	module.ODA_SELECT = 0x0002;
	module.ODA_FOCUS = 0x0004;

	/*
	 * Owner draw state
	 */
	module.ODS_SELECTED = 0x0001;
	module.ODS_GRAYED = 0x0002;
	module.ODS_DISABLED = 0x0004;
	module.ODS_CHECKED = 0x0008;
	module.ODS_FOCUS = 0x0010;
	//#if(WINVER >= 0x0400);
	module.ODS_DEFAULT = 0x0020;
	module.ODS_COMBOBOXEDIT = 0x1000;
	//#endif /* WINVER >= 0x0400 */
	//#if(WINVER >= 0x0500);
	module.ODS_HOTLIGHT = 0x0040;
	module.ODS_INACTIVE = 0x0080;
	//#if(_WIN32_WINNT >= 0x0500);
	module.ODS_NOACCEL = 0x0100;
	module.ODS_NOFOCUSRECT = 0x0200;
	//#endif /* _WIN32_WINNT >= 0x0500 */
	//#endif /* WINVER >= 0x0500 */

	//#endif /* WINVER >= 0x0500 */

	/*
	 * PeekMessage() Options
	 */
	module.PM_NOREMOVE = 0x0000;
	module.PM_REMOVE = 0x0001;
	module.PM_NOYIELD = 0x0002;
	//#if(WINVER >= 0x0500);
	module.PM_QS_INPUT = (module.QS_INPUT << 16);
	module.PM_QS_POSTMESSAGE = ((module.QS_POSTMESSAGE | module.QS_HOTKEY | module.QS_TIMER) << 16);
	module.PM_QS_PAINT = (module.QS_PAINT << 16);
	module.PM_QS_SENDMESSAGE = (module.QS_SENDMESSAGE << 16);
	//#endif /* WINVER >= 0x0500 */



	module.MOD_ALT = 0x0001;
	module.MOD_CONTROL = 0x0002;
	module.MOD_SHIFT = 0x0004;
	module.MOD_WIN = 0x0008;


	module.IDHOT_SNAPWINDOW = (-1); /* SHIFT-PRINTSCRN = */
	module.IDHOT_SNAPDESKTOP = (-2); /* PRINTSCRN = */


	module.ENDSESSION_LOGOFF = 0x80000000;


	module.EWX_LOGOFF = 0;
	module.EWX_SHUTDOWN = 0x00000001;
	module.EWX_REBOOT = 0x00000002;
	module.EWX_FORCE = 0x00000004;
	module.EWX_POWEROFF = 0x00000008;
	//#if(_WIN32_WINNT >= 0x0500);
	module.EWX_FORCEIFHUNG = 0x00000010;
	//#endif /* _WIN32_WINNT >= 0x0500 */


	//Broadcast Special Message Recipient list
	module.BSM_ALLCOMPONENTS = 0x00000000;
	module.BSM_VXDS = 0x00000001;
	module.BSM_NETDRIVER = 0x00000002;
	module.BSM_INSTALLABLEDRIVERS = 0x00000004;
	module.BSM_APPLICATIONS = 0x00000008;
	module.BSM_ALLDESKTOPS = 0x00000010;

	//Broadcast Special Message Flags
	module.BSF_QUERY = 0x00000001;
	module.BSF_IGNORECURRENTTASK = 0x00000002;
	module.BSF_FLUSHDISK = 0x00000004;
	module.BSF_NOHANG = 0x00000008;
	module.BSF_POSTMESSAGE = 0x00000010;
	module.BSF_FORCEIFHUNG = 0x00000020;
	module.BSF_NOTIMEOUTIFNOTHUNG = 0x00000040;
	//#if(_WIN32_WINNT >= 0x0500);
	module.BSF_ALLOWSFW = 0x00000080;
	module.BSF_SENDNOTIFYMESSAGE = 0x00000100;
	//#endif /* _WIN32_WINNT >= 0x0500 */
	//#if(_WIN32_WINNT >= 0x0501);
	module.BSF_RETURNHDESK = 0x00000200;
	module.BSF_LUID = 0x00000400;
	//#endif /* _WIN32_WINNT >= 0x0501 */

	module.BROADCAST_QUERY_DENY = 0x424D5144; // Return this value to deny a query.
	//#endif /* WINVER >= 0x0400 */

	// RegisterDeviceNotification

	//#if(WINVER >= 0x0500);
	//typedef = PVOID = HDEVNOTIFY;
	//typedef = HDEVNOTIFY = *PHDEVNOTIFY;

	module.DEVICE_NOTIFY_WINDOW_HANDLE = 0x00000000;
	module.DEVICE_NOTIFY_SERVICE_HANDLE = 0x00000001;
	//#if(_WIN32_WINNT >= 0x0501);
	module.DEVICE_NOTIFY_ALL_INTERFACE_CLASSES = 0x00000004;
	//#endif /* _WIN32_WINNT >= 0x0501 */



	/*
	 * Special HWND value for use with PostMessage() and SendMessage()
	 */
	module.HWND_BROADCAST = (0xffff);

	//#if(WINVER >= 0x0500);
	module.HWND_MESSAGE = (-3);
	//#endif /* WINVER >= 0x0500 */


	/*
	 * InSendMessageEx return value
	 */
	module.ISMEX_NOSEND = 0x00000000;
	module.ISMEX_SEND = 0x00000001;
	module.ISMEX_NOTIFY = 0x00000002;
	module.ISMEX_CALLBACK = 0x00000004;
	module.ISMEX_REPLIED = 0x00000008;
	//#endif /* WINVER >= 0x0500 */


	module.CW_USEDEFAULT = 0x80000000;


	/*
	 * Special value for CreateWindow, et al.
	 */
	module.HWND_DESKTOP = (0);


	module.PW_CLIENTONLY = 0x00000001;


	module.LWA_COLORKEY = 0x00000001;
	module.LWA_ALPHA = 0x00000002;


	module.ULW_COLORKEY = 0x00000001;
	module.ULW_ALPHA = 0x00000002;
	module.ULW_OPAQUE = 0x00000004;

	module.ULW_EX_NORESIZE = 0x00000008;


	module.FLASHW_STOP = 0;
	module.FLASHW_CAPTION = 0x00000001;
	module.FLASHW_TRAY = 0x00000002;
	module.FLASHW_ALL = (module.FLASHW_CAPTION | module.FLASHW_TRAY);
	module.FLASHW_TIMER = 0x00000004;
	module.FLASHW_TIMERNOFG = 0x0000000C;


	/*
	 * SetWindowPos Flags
	 */
	module.SWP_NOSIZE = 0x0001;
	module.SWP_NOMOVE = 0x0002;
	module.SWP_NOZORDER = 0x0004;
	module.SWP_NOREDRAW = 0x0008;
	module.SWP_NOACTIVATE = 0x0010;
	module.SWP_FRAMECHANGED = 0x0020; /* The frame changed: send WM_NCCALCSIZE */
	module.SWP_SHOWWINDOW = 0x0040;
	module.SWP_HIDEWINDOW = 0x0080;
	module.SWP_NOCOPYBITS = 0x0100;
	module.SWP_NOOWNERZORDER = 0x0200; /* Don't do owner Z ordering */
	module.SWP_NOSENDCHANGING = 0x0400; /* Don't send WM_WINDOWPOSCHANGING */

	module.SWP_DRAWFRAME = module.SWP_FRAMECHANGED;
	module.SWP_NOREPOSITION = module.SWP_NOOWNERZORDER;

	//#if(WINVER >= 0x0400);
	module.SWP_DEFERERASE = 0x2000;
	module.SWP_ASYNCWINDOWPOS = 0x4000;
	//#endif /* WINVER >= 0x0400 */


	module.HWND_TOP = (0);
	module.HWND_BOTTOM = (1);
	module.HWND_TOPMOST = (-1);
	module.HWND_NOTOPMOST = (-2);


	/*
	 * Window extra byted needed for private dialog classes.
	 */
	//#ifndef _MAC
	module.DLGWINDOWEXTRA = 30;
	//#else
	//module.DLGWINDOWEXTRA = 48;
	//#endif


	module.KEYEVENTF_EXTENDEDKEY = 0x0001;
	module.KEYEVENTF_KEYUP = 0x0002;
	//#if(_WIN32_WINNT >= 0x0500);
	module.KEYEVENTF_UNICODE = 0x0004;
	module.KEYEVENTF_SCANCODE = 0x0008;
	//#endif /* _WIN32_WINNT >= 0x0500 */


	module.MOUSEEVENTF_MOVE = 0x0001; /* mouse move */
	module.MOUSEEVENTF_LEFTDOWN = 0x0002; /* left button down */
	module.MOUSEEVENTF_LEFTUP = 0x0004; /* left button up */
	module.MOUSEEVENTF_RIGHTDOWN = 0x0008; /* right button down */
	module.MOUSEEVENTF_RIGHTUP = 0x0010; /* right button up */
	module.MOUSEEVENTF_MIDDLEDOWN = 0x0020; /* middle button down */
	module.MOUSEEVENTF_MIDDLEUP = 0x0040; /* middle button up */
	module.MOUSEEVENTF_XDOWN = 0x0080; /* x button down */
	module.MOUSEEVENTF_XUP = 0x0100; /* x button down */
	module.MOUSEEVENTF_WHEEL = 0x0800; /* wheel button rolled */
	module.MOUSEEVENTF_VIRTUALDESK = 0x4000; /* map to entire virtual desktop */
	module.MOUSEEVENTF_ABSOLUTE = 0x8000; /* absolute move */




	module.INPUT_MOUSE = 0;
	module.INPUT_KEYBOARD = 1;
	module.INPUT_HARDWARE = 2;


	module.MWMO_WAITALL = 0x0001;
	module.MWMO_ALERTABLE = 0x0002;
	module.MWMO_INPUTAVAILABLE = 0x0004;


	/*
	 * Queue status flags for GetQueueStatus() and MsgWaitForMultipleObjects()
	 */
	module.QS_KEY = 0x0001;
	module.QS_MOUSEMOVE = 0x0002;
	module.QS_MOUSEBUTTON = 0x0004;
	module.QS_POSTMESSAGE = 0x0008;
	module.QS_TIMER = 0x0010;
	module.QS_PAINT = 0x0020;
	module.QS_SENDMESSAGE = 0x0040;
	module.QS_HOTKEY = 0x0080;
	module.QS_ALLPOSTMESSAGE = 0x0100;
	////#if(_WIN32_WINNT >= 0x0501);
	module.QS_RAWINPUT = 0x0400;
	////#endif /* _WIN32_WINNT >= 0x0501 */

	module.QS_MOUSE = (module.QS_MOUSEMOVE | module.QS_MOUSEBUTTON);

	//..WINVER
	////#if (_WIN32_WINNT >= 0x0501);
	module.QS_INPUT = (module.QS_MOUSE | module.QS_KEY | module.QS_RAWINPUT);
	////#else
	//module.QS_INPUT = (QS_MOUSE | QS_KEY);
	////#endif // (_WIN32_WINNT >= 0x0501);

	module.QS_ALLEVENTS = (module.QS_INPUT | module.QS_POSTMESSAGE | module.QS_TIMER | module.QS_PAINT | module.QS_HOTKEY);

	module.QS_ALLINPUT = (module.QS_INPUT | module.QS_POSTMESSAGE | module.QS_TIMER | module.QS_PAINT | module.QS_HOTKEY | module.QS_SENDMESSAGE);


	module.USER_TIMER_MAXIMUM = 0x7FFFFFFF;
	module.USER_TIMER_MINIMUM = 0x0000000A;


	/*
	 * GetSystemMetrics() codes
	 */

	module.SM_CXSCREEN = 0;
	module.SM_CYSCREEN = 1;
	module.SM_CXVSCROLL = 2;
	module.SM_CYHSCROLL = 3;
	module.SM_CYCAPTION = 4;
	module.SM_CXBORDER = 5;
	module.SM_CYBORDER = 6;
	module.SM_CXDLGFRAME = 7;
	module.SM_CYDLGFRAME = 8;
	module.SM_CYVTHUMB = 9;
	module.SM_CXHTHUMB = 10;
	module.SM_CXICON = 11;
	module.SM_CYICON = 12;
	module.SM_CXCURSOR = 13;
	module.SM_CYCURSOR = 14;
	module.SM_CYMENU = 15;
	module.SM_CXFULLSCREEN = 16;
	module.SM_CYFULLSCREEN = 17;
	module.SM_CYKANJIWINDOW = 18;
	module.SM_MOUSEPRESENT = 19;
	module.SM_CYVSCROLL = 20;
	module.SM_CXHSCROLL = 21;
	module.SM_DEBUG = 22;
	module.SM_SWAPBUTTON = 23;
	module.SM_RESERVED1 = 24;
	module.SM_RESERVED2 = 25;
	module.SM_RESERVED3 = 26;
	module.SM_RESERVED4 = 27;
	module.SM_CXMIN = 28;
	module.SM_CYMIN = 29;
	module.SM_CXSIZE = 30;
	module.SM_CYSIZE = 31;
	module.SM_CXFRAME = 32;
	module.SM_CYFRAME = 33;
	module.SM_CXMINTRACK = 34;
	module.SM_CYMINTRACK = 35;
	module.SM_CXDOUBLECLK = 36;
	module.SM_CYDOUBLECLK = 37;
	module.SM_CXICONSPACING = 38;
	module.SM_CYICONSPACING = 39;
	module.SM_MENUDROPALIGNMENT = 40;
	module.SM_PENWINDOWS = 41;
	module.SM_DBCSENABLED = 42;
	module.SM_CMOUSEBUTTONS = 43;

	////#if(WINVER >= 0x0400);
	module.SM_CXFIXEDFRAME = module.SM_CXDLGFRAME; /* ;win40 name change */
	module.SM_CYFIXEDFRAME = module.SM_CYDLGFRAME; /* ;win40 name change */
	module.SM_CXSIZEFRAME = module.SM_CXFRAME; /* ;win40 name change */
	module.SM_CYSIZEFRAME = module.SM_CYFRAME; /* ;win40 name change */

	module.SM_SECURE = 44;
	module.SM_CXEDGE = 45;
	module.SM_CYEDGE = 46;
	module.SM_CXMINSPACING = 47;
	module.SM_CYMINSPACING = 48;
	module.SM_CXSMICON = 49;
	module.SM_CYSMICON = 50;
	module.SM_CYSMCAPTION = 51;
	module.SM_CXSMSIZE = 52;
	module.SM_CYSMSIZE = 53;
	module.SM_CXMENUSIZE = 54;
	module.SM_CYMENUSIZE = 55;
	module.SM_ARRANGE = 56;
	module.SM_CXMINIMIZED = 57;
	module.SM_CYMINIMIZED = 58;
	module.SM_CXMAXTRACK = 59;
	module.SM_CYMAXTRACK = 60;
	module.SM_CXMAXIMIZED = 61;
	module.SM_CYMAXIMIZED = 62;
	module.SM_NETWORK = 63;
	module.SM_CLEANBOOT = 67;
	module.SM_CXDRAG = 68;
	module.SM_CYDRAG = 69;
	////#endif /* WINVER >= 0x0400 */
	module.SM_SHOWSOUNDS = 70;
	////#if(WINVER >= 0x0400);
	module.SM_CXMENUCHECK = 71; /* Use instead of GetMenuCheckMarkDimensions()! */
	module.SM_CYMENUCHECK = 72;
	module.SM_SLOWMACHINE = 73;
	module.SM_MIDEASTENABLED = 74;
	////#endif /* WINVER >= 0x0400 */

	////#if (WINVER >= 0x0500) || (_WIN32_WINNT >= 0x0400);
	module.SM_MOUSEWHEELPRESENT = 75;
	////#endif
	////#if(WINVER >= 0x0500);
	module.SM_XVIRTUALSCREEN = 76;
	module.SM_YVIRTUALSCREEN = 77;
	module.SM_CXVIRTUALSCREEN = 78;
	module.SM_CYVIRTUALSCREEN = 79;
	module.SM_CMONITORS = 80;
	module.SM_SAMEDISPLAYFORMAT = 81;
	////#endif /* WINVER >= 0x0500 */
	////#if(_WIN32_WINNT >= 0x0500);
	module.SM_IMMENABLED = 82;
	////#endif /* _WIN32_WINNT >= 0x0500 */
	////#if(_WIN32_WINNT >= 0x0501);
	module.SM_CXFOCUSBORDER = 83;
	module.SM_CYFOCUSBORDER = 84;
	////#endif /* _WIN32_WINNT >= 0x0501 */

	////#if(_WIN32_WINNT >= 0x0501);
	module.SM_TABLETPC = 86;
	module.SM_MEDIACENTER = 87;
	module.SM_STARTER = 88;
	module.SM_SERVERR2 = 89;
	////#endif /* _WIN32_WINNT >= 0x0501 */

	//..WINVER
	////#if (WINVER < = 0x0500) && (!defined(_WIN32_WINNT) || (_WIN32_WINNT < = 0x0400));
	module.SM_CMETRICS = 76;
	////#elif WINVER == 0x500;
	//module.SM_CMETRICS = 83;
	////#else
	//module.SM_CMETRICS = 90;
	////#endif

	////#if(WINVER >= 0x0500);
	module.SM_REMOTESESSION = 0x1000;


	////#if(_WIN32_WINNT >= 0x0501);
	module.SM_SHUTTINGDOWN = 0x2000;
	////#endif /* _WIN32_WINNT >= 0x0501 */

	////#if(WINVER >= 0x0501);
	module.SM_REMOTECONTROL = 0x2001;
	////#endif /* WINVER >= 0x0501 */

	////#if(WINVER >= 0x0501);
	module.SM_CARETBLINKINGENABLED = 0x2002;
	////#endif /* WINVER >= 0x0501 */

	////#endif /* WINVER >= 0x0500 */


	////#if(_WIN32_WINNT >= 0x0501);
	module.PMB_ACTIVE = 0x00000001;


	////#if(WINVER >= 0x0400);
	/* return codes for WM_MENUCHAR */
	module.MNC_IGNORE = 0;
	module.MNC_CLOSE = 1;
	module.MNC_EXECUTE = 2;
	module.MNC_SELECT = 3;


	////#if(WINVER >= 0x0500);

	module.MNS_NOCHECK = 0x80000000;
	module.MNS_MODELESS = 0x40000000;
	module.MNS_DRAGDROP = 0x20000000;
	module.MNS_AUTODISMISS = 0x10000000;
	module.MNS_NOTIFYBYPOS = 0x08000000;
	module.MNS_CHECKORBMP = 0x04000000;

	module.MIM_MAXHEIGHT = 0x00000001;
	module.MIM_BACKGROUND = 0x00000002;
	module.MIM_HELPID = 0x00000004;
	module.MIM_MENUDATA = 0x00000008;
	module.MIM_STYLE = 0x00000010;
	module.MIM_APPLYTOSUBMENUS = 0x80000000;


	/*
	 * WM_MENUDRAG return values.
	 */
	module.MND_CONTINUE = 0;
	module.MND_ENDMENU = 1;


	/*
	 * MENUGETOBJECTINFO dwFlags values
	 */
	module.MNGOF_TOPGAP = 0x00000001;
	module.MNGOF_BOTTOMGAP = 0x00000002;

	/*
	 * WM_MENUGETOBJECT return values
	 */
	module.MNGO_NOINTERFACE = 0x00000000;
	module.MNGO_NOERROR = 0x00000001;
	////#endif /* WINVER >= 0x0500 */

	////#if(WINVER >= 0x0400);
	module.MIIM_STATE = 0x00000001;
	module.MIIM_ID = 0x00000002;
	module.MIIM_SUBMENU = 0x00000004;
	module.MIIM_CHECKMARKS = 0x00000008;
	module.MIIM_TYPE = 0x00000010;
	module.MIIM_DATA = 0x00000020;
	////#endif /* WINVER >= 0x0400 */

	////#if(WINVER >= 0x0500);
	module.MIIM_STRING = 0x00000040;
	module.MIIM_BITMAP = 0x00000080;
	module.MIIM_FTYPE = 0x00000100;

	module.HBMMENU_CALLBACK = (-1);
	module.HBMMENU_SYSTEM = (1);
	module.HBMMENU_MBAR_RESTORE = (2);
	module.HBMMENU_MBAR_MINIMIZE = (3);
	module.HBMMENU_MBAR_CLOSE = (5);
	module.HBMMENU_MBAR_CLOSE_D = (6);
	module.HBMMENU_MBAR_MINIMIZE_D = (7);
	module.HBMMENU_POPUP_CLOSE = (8);
	module.HBMMENU_POPUP_RESTORE = (9);
	module.HBMMENU_POPUP_MAXIMIZE = (10);
	module.HBMMENU_POPUP_MINIMIZE = (11);
	////#endif /* WINVER >= 0x0500 */

	module.GMDI_USEDISABLED = 0x0001;
	module.GMDI_GOINTOPOPUPS = 0x0002;

	/*
	 * Flags for TrackPopupMenu
	 */
	module.TPM_LEFTBUTTON = 0x0000;
	module.TPM_RIGHTBUTTON = 0x0002;
	module.TPM_LEFTALIGN = 0x0000;
	module.TPM_CENTERALIGN = 0x0004;
	module.TPM_RIGHTALIGN = 0x0008;
	////#if(WINVER >= 0x0400);
	module.TPM_TOPALIGN = 0x0000;
	module.TPM_VCENTERALIGN = 0x0010;
	module.TPM_BOTTOMALIGN = 0x0020;

	module.TPM_HORIZONTAL = 0x0000; /* Horz alignment matters more */
	module.TPM_VERTICAL = 0x0040; /* Vert alignment matters more */
	module.TPM_NONOTIFY = 0x0080; /* Don't send any notification msgs */
	module.TPM_RETURNCMD = 0x0100;
	////#endif /* WINVER >= 0x0400 */
	////#if(WINVER >= 0x0500);
	module.TPM_RECURSE = 0x0001;
	module.TPM_HORPOSANIMATION = 0x0400;
	module.TPM_HORNEGANIMATION = 0x0800;
	module.TPM_VERPOSANIMATION = 0x1000;
	module.TPM_VERNEGANIMATION = 0x2000;
	////#if(_WIN32_WINNT >= 0x0500);
	module.TPM_NOANIMATION = 0x4000;
	////#endif /* _WIN32_WINNT >= 0x0500 */
	////#if(_WIN32_WINNT >= 0x0501);
	module.TPM_LAYOUTRTL = 0x8000;
	////#endif /* _WIN32_WINNT >= 0x0501 */
	////#endif /* WINVER >= 0x0500 */


	////#endif /* !NOMENUS */

	module.DOF_EXECUTABLE = 0x8001;
	module.DOF_DOCUMENT = 0x8002;
	module.DOF_DIRECTORY = 0x8003;
	module.DOF_MULTIPLE = 0x8004;
	module.DOF_PROGMAN = 0x0001;
	module.DOF_SHELLDATA = 0x0002;

	module.DO_DROPFILE = 0x454C4946;
	module.DO_PRINTFILE = 0x544E5250;

	/*
	 * DrawText() Format Flags
	 */
	module.DT_TOP = 0x00000000;
	module.DT_LEFT = 0x00000000;
	module.DT_CENTER = 0x00000001;
	module.DT_RIGHT = 0x00000002;
	module.DT_VCENTER = 0x00000004;
	module.DT_BOTTOM = 0x00000008;
	module.DT_WORDBREAK = 0x00000010;
	module.DT_SINGLELINE = 0x00000020;
	module.DT_EXPANDTABS = 0x00000040;
	module.DT_TABSTOP = 0x00000080;
	module.DT_NOCLIP = 0x00000100;
	module.DT_EXTERNALLEADING = 0x00000200;
	module.DT_CALCRECT = 0x00000400;
	module.DT_NOPREFIX = 0x00000800;
	module.DT_INTERNAL = 0x00001000;

	//#if(WINVER >= 0x0400);
	module.DT_EDITCONTROL = 0x00002000;
	module.DT_PATH_ELLIPSIS = 0x00004000;
	module.DT_END_ELLIPSIS = 0x00008000;
	module.DT_MODIFYSTRING = 0x00010000;
	module.DT_RTLREADING = 0x00020000;
	module.DT_WORD_ELLIPSIS = 0x00040000;
	//#if(WINVER >= 0x0500);
	module.DT_NOFULLWIDTHCHARBREAK = 0x00080000;
	//#if(_WIN32_WINNT >= 0x0500);
	module.DT_HIDEPREFIX = 0x00100000;
	module.DT_PREFIXONLY = 0x00200000;
	//#endif /* _WIN32_WINNT >= 0x0500 */
	//#endif /* WINVER >= 0x0500 */


	//#if(WINVER >= 0x0400);
	/* Monolithic state-drawing routine */
	/* Image type */
	module.DST_COMPLEX = 0x0000;
	module.DST_TEXT = 0x0001;
	module.DST_PREFIXTEXT = 0x0002;
	module.DST_ICON = 0x0003;
	module.DST_BITMAP = 0x0004;

	/* State type */
	module.DSS_NORMAL = 0x0000;
	module.DSS_UNION = 0x0010; /* Gray string appearance */
	module.DSS_DISABLED = 0x0020;
	module.DSS_MONO = 0x0080;
	//#if(_WIN32_WINNT >= 0x0500);
	module.DSS_HIDEPREFIX = 0x0200;
	module.DSS_PREFIXONLY = 0x0400;
	//#endif /* _WIN32_WINNT >= 0x0500 */
	module.DSS_RIGHT = 0x8000;

	module.LSFW_LOCK = 1;
	module.LSFW_UNLOCK = 2;


	/*
	 * GetDCEx() flags
	 */
	module.DCX_WINDOW = 0x00000001;
	module.DCX_CACHE = 0x00000002;
	module.DCX_NORESETATTRS = 0x00000004;
	module.DCX_CLIPCHILDREN = 0x00000008;
	module.DCX_CLIPSIBLINGS = 0x00000010;
	module.DCX_PARENTCLIP = 0x00000020;
	module.DCX_EXCLUDERGN = 0x00000040;
	module.DCX_INTERSECTRGN = 0x00000080;
	module.DCX_EXCLUDEUPDATE = 0x00000100;
	module.DCX_INTERSECTUPDATE = 0x00000200;
	module.DCX_LOCKWINDOWUPDATE = 0x00000400;

	module.DCX_VALIDATE = 0x00200000;

	/*
	 * RedrawWindow() flags
	 */
	module.RDW_INVALIDATE = 0x0001;
	module.RDW_INTERNALPAINT = 0x0002;
	module.RDW_ERASE = 0x0004;

	module.RDW_VALIDATE = 0x0008;
	module.RDW_NOINTERNALPAINT = 0x0010;
	module.RDW_NOERASE = 0x0020;

	module.RDW_NOCHILDREN = 0x0040;
	module.RDW_ALLCHILDREN = 0x0080;

	module.RDW_UPDATENOW = 0x0100;
	module.RDW_ERASENOW = 0x0200;

	module.RDW_FRAME = 0x0400;
	module.RDW_NOFRAME = 0x0800;

	module.SW_SCROLLCHILDREN = 0x0001; /* Scroll children within *lprcScroll. */
	module.SW_INVALIDATE = 0x0002; /* Invalidate after scrolling */
	module.SW_ERASE = 0x0004; /* If SW_INVALIDATE, don't send WM_ERASEBACKGROUND */
	//#if(WINVER >= 0x0500);
	module.SW_SMOOTHSCROLL = 0x0010; /* Use smooth scrolling */
	//#endif /* WINVER >= 0x0500 */

	/*
	 * EnableScrollBar() flags
	 */
	module.ESB_ENABLE_BOTH = 0x0000;
	module.ESB_DISABLE_BOTH = 0x0003;

	module.ESB_DISABLE_LEFT = 0x0001;
	module.ESB_DISABLE_RIGHT = 0x0002;

	module.ESB_DISABLE_UP = 0x0001;
	module.ESB_DISABLE_DOWN = 0x0002;


	module.ESB_DISABLE_LTUP = module.ESB_DISABLE_LEFT;
	module.ESB_DISABLE_RTDN = module.ESB_DISABLE_RIGHT;

	module.HELPINFO_WINDOW = 0x0001;
	module.HELPINFO_MENUITEM = 0x0002;

	/*
	 * MessageBox() Flags
	 */
	module.MB_OK = 0x00000000;
	module.MB_OKCANCEL = 0x00000001;
	module.MB_ABORTRETRYIGNORE = 0x00000002;
	module.MB_YESNOCANCEL = 0x00000003;
	module.MB_YESNO = 0x00000004;
	module.MB_RETRYCANCEL = 0x00000005;
	//#if(WINVER >= 0x0500);
	module.MB_CANCELTRYCONTINUE = 0x00000006;
	//#endif /* WINVER >= 0x0500 */


	module.MB_ICONHAND = 0x00000010;
	module.MB_ICONQUESTION = 0x00000020;
	module.MB_ICONEXCLAMATION = 0x00000030;
	module.MB_ICONASTERISK = 0x00000040;

	//#if(WINVER >= 0x0400);
	module.MB_USERICON = 0x00000080;
	module.MB_ICONWARNING = module.MB_ICONEXCLAMATION;
	module.MB_ICONERROR = module.MB_ICONHAND;
	//#endif /* WINVER >= 0x0400 */

	module.MB_ICONINFORMATION = module.MB_ICONASTERISK;
	module.MB_ICONSTOP = module.MB_ICONHAND;

	module.MB_DEFBUTTON1 = 0x00000000;
	module.MB_DEFBUTTON2 = 0x00000100;
	module.MB_DEFBUTTON3 = 0x00000200;
	//#if(WINVER >= 0x0400);
	module.MB_DEFBUTTON4 = 0x00000300;
	//#endif /* WINVER >= 0x0400 */

	module.MB_APPLMODAL = 0x00000000;
	module.MB_SYSTEMMODAL = 0x00001000;
	module.MB_TASKMODAL = 0x00002000;
	//#if(WINVER >= 0x0400);
	module.MB_HELP = 0x00004000; // Help Button
	//#endif /* WINVER >= 0x0400 */

	module.MB_NOFOCUS = 0x00008000;
	module.MB_SETFOREGROUND = 0x00010000;
	module.MB_DEFAULT_DESKTOP_ONLY = 0x00020000;

	//#if(WINVER >= 0x0400);
	module.MB_TOPMOST = 0x00040000;
	module.MB_RIGHT = 0x00080000;
	module.MB_RTLREADING = 0x00100000;

	//#endif /* WINVER >= 0x0400 */

	module.MB_SERVICE_NOTIFICATION_NT3X = 0x00040000;
	//#endif

	module.MB_TYPEMASK = 0x0000000F;
	module.MB_ICONMASK = 0x000000F0;
	module.MB_DEFMASK = 0x00000F00;
	module.MB_MODEMASK = 0x00003000;
	module.MB_MISCMASK = 0x0000C000;

	module.CWP_ALL = 0x0000;
	module.CWP_SKIPINVISIBLE = 0x0001;
	module.CWP_SKIPDISABLED = 0x0002;
	module.CWP_SKIPTRANSPARENT = 0x0004;

	/*
	 * Color Types
	 */
	module.CTLCOLOR_MSGBOX = 0;
	module.CTLCOLOR_EDIT = 1;
	module.CTLCOLOR_LISTBOX = 2;
	module.CTLCOLOR_BTN = 3;
	module.CTLCOLOR_DLG = 4;
	module.CTLCOLOR_SCROLLBAR = 5;
	module.CTLCOLOR_STATIC = 6;
	module.CTLCOLOR_MAX = 7;

	module.COLOR_SCROLLBAR = 0;
	module.COLOR_BACKGROUND = 1;
	module.COLOR_ACTIVECAPTION = 2;
	module.COLOR_INACTIVECAPTION = 3;
	module.COLOR_MENU = 4;
	module.COLOR_WINDOW = 5;
	module.COLOR_WINDOWFRAME = 6;
	module.COLOR_MENUTEXT = 7;
	module.COLOR_WINDOWTEXT = 8;
	module.COLOR_CAPTIONTEXT = 9;
	module.COLOR_ACTIVEBORDER = 10;
	module.COLOR_INACTIVEBORDER = 11;
	module.COLOR_APPWORKSPACE = 12;
	module.COLOR_HIGHLIGHT = 13;
	module.COLOR_HIGHLIGHTTEXT = 14;
	module.COLOR_BTNFACE = 15;
	module.COLOR_BTNSHADOW = 16;
	module.COLOR_GRAYTEXT = 17;
	module.COLOR_BTNTEXT = 18;
	module.COLOR_INACTIVECAPTIONTEXT = 19;
	module.COLOR_BTNHIGHLIGHT = 20;

	//#if(WINVER >= 0x0400);
	module.COLOR_3DDKSHADOW = 21;
	module.COLOR_3DLIGHT = 22;
	module.COLOR_INFOTEXT = 23;
	module.COLOR_INFOBK = 24;
	//#endif /* WINVER >= 0x0400 */

	//#if(WINVER >= 0x0500);
	module.COLOR_HOTLIGHT = 26;
	module.COLOR_GRADIENTACTIVECAPTION = 27;
	module.COLOR_GRADIENTINACTIVECAPTION = 28;
	//#if(WINVER >= 0x0501);
	module.COLOR_MENUHILIGHT = 29;
	module.COLOR_MENUBAR = 30;
	//#endif /* WINVER >= 0x0501 */
	//#endif /* WINVER >= 0x0500 */

	//#if(WINVER >= 0x0400);
	module.COLOR_DESKTOP = module.COLOR_BACKGROUND;
	module.COLOR_3DFACE = module.COLOR_BTNFACE;
	module.COLOR_3DSHADOW = module.COLOR_BTNSHADOW;
	module.COLOR_3DHIGHLIGHT = module.COLOR_BTNHIGHLIGHT;
	module.COLOR_3DHILIGHT = module.COLOR_BTNHIGHLIGHT;
	module.COLOR_BTNHILIGHT = module.COLOR_BTNHIGHLIGHT;
	//#endif /* WINVER >= 0x0400 */

	/*
	 * GetWindow() Constants
	 */
	module.GW_HWNDFIRST = 0;
	module.GW_HWNDLAST = 1;
	module.GW_HWNDNEXT = 2;
	module.GW_HWNDPREV = 3;
	module.GW_OWNER = 4;
	module.GW_CHILD = 5;

	//..WINVER
	//#if(WINVER <= 0x0400);
	//module.GW_MAX = 5;
	//#else
	module.GW_ENABLEDPOPUP = 6;
	module.GW_MAX = 6;
	//#endif

	/* ;win40 = -- A lot of MF_* flags have been renamed as MFT_* and MFS_* flags */
	/*
	 * Menu flags for Add/Check/EnableMenuItem()
	 */
	module.MF_INSERT = 0x00000000;
	module.MF_CHANGE = 0x00000080;
	module.MF_APPEND = 0x00000100;
	module.MF_DELETE = 0x00000200;
	module.MF_REMOVE = 0x00001000;

	module.MF_BYCOMMAND = 0x00000000;
	module.MF_BYPOSITION = 0x00000400;

	module.MF_SEPARATOR = 0x00000800;

	module.MF_ENABLED = 0x00000000;
	module.MF_GRAYED = 0x00000001;
	module.MF_DISABLED = 0x00000002;

	module.MF_UNCHECKED = 0x00000000;
	module.MF_CHECKED = 0x00000008;
	module.MF_USECHECKBITMAPS = 0x00000200;

	module.MF_STRING = 0x00000000;
	module.MF_BITMAP = 0x00000004;
	module.MF_OWNERDRAW = 0x00000100;

	module.MF_POPUP = 0x00000010;
	module.MF_MENUBARBREAK = 0x00000020;
	module.MF_MENUBREAK = 0x00000040;

	module.MF_UNHILITE = 0x00000000;
	module.MF_HILITE = 0x00000080;

	//#if(WINVER >= 0x0400);
	module.MF_DEFAULT = 0x00001000;
	//#endif /* WINVER >= 0x0400 */
	module.MF_SYSMENU = 0x00002000;
	module.MF_HELP = 0x00004000;
	//#if(WINVER >= 0x0400);
	module.MF_RIGHTJUSTIFY = 0x00004000;
	//#endif /* WINVER >= 0x0400 */

	module.MF_MOUSESELECT = 0x00008000;
	//#if(WINVER >= 0x0400);
	module.MF_END = 0x00000080; /* Obsolete -- only used by old RES files */
	//#endif /* WINVER >= 0x0400 */


	//#if(WINVER >= 0x0400);
	module.MFT_STRING = module.MF_STRING;
	module.MFT_BITMAP = module.MF_BITMAP;
	module.MFT_MENUBARBREAK = module.MF_MENUBARBREAK;
	module.MFT_MENUBREAK = module.MF_MENUBREAK;
	module.MFT_OWNERDRAW = module.MF_OWNERDRAW;
	module.MFT_RADIOCHECK = 0x00000200;
	module.MFT_SEPARATOR = module.MF_SEPARATOR;
	module.MFT_RIGHTORDER = 0x00002000;
	module.MFT_RIGHTJUSTIFY = module.MF_RIGHTJUSTIFY;

	/* Menu flags for Add/Check/EnableMenuItem() */
	module.MFS_GRAYED = 0x00000003;
	module.MFS_DISABLED = module.MFS_GRAYED;
	module.MFS_CHECKED = module.MF_CHECKED;
	module.MFS_HILITE = module.MF_HILITE;
	module.MFS_ENABLED = module.MF_ENABLED;
	module.MFS_UNCHECKED = module.MF_UNCHECKED;
	module.MFS_UNHILITE = module.MF_UNHILITE;
	module.MFS_DEFAULT = module.MF_DEFAULT;
	//#endif /* WINVER >= 0x0400 */


	/*
	 * System Menu Command Values
	 */
	module.SC_SIZE = 0xF000;
	module.SC_MOVE = 0xF010;
	module.SC_MINIMIZE = 0xF020;
	module.SC_MAXIMIZE = 0xF030;
	module.SC_NEXTWINDOW = 0xF040;
	module.SC_PREVWINDOW = 0xF050;
	module.SC_CLOSE = 0xF060;
	module.SC_VSCROLL = 0xF070;
	module.SC_HSCROLL = 0xF080;
	module.SC_MOUSEMENU = 0xF090;
	module.SC_KEYMENU = 0xF100;
	module.SC_ARRANGE = 0xF110;
	module.SC_RESTORE = 0xF120;
	module.SC_TASKLIST = 0xF130;
	module.SC_SCREENSAVE = 0xF140;
	module.SC_HOTKEY = 0xF150;
	//#if(WINVER >= 0x0400);
	module.SC_DEFAULT = 0xF160;
	module.SC_MONITORPOWER = 0xF170;
	module.SC_CONTEXTHELP = 0xF180;
	module.SC_SEPARATOR = 0xF00F;
	//#endif /* WINVER >= 0x0400 */


	/*
	 * Obsolete names
	 */
	module.SC_ICON = module.SC_MINIMIZE;
	module.SC_ZOOM = module.SC_MAXIMIZE;




	module.IMAGE_BITMAP = 0;
	module.IMAGE_ICON = 1;
	module.IMAGE_CURSOR = 2;
	//#if(WINVER >= 0x0400);
	module.IMAGE_ENHMETAFILE = 3;

	module.LR_DEFAULTCOLOR = 0x0000;
	module.LR_MONOCHROME = 0x0001;
	module.LR_COLOR = 0x0002;
	module.LR_COPYRETURNORG = 0x0004;
	module.LR_COPYDELETEORG = 0x0008;
	module.LR_LOADFROMFILE = 0x0010;
	module.LR_LOADTRANSPARENT = 0x0020;
	module.LR_DEFAULTSIZE = 0x0040;
	module.LR_VGACOLOR = 0x0080;
	module.LR_LOADMAP3DCOLORS = 0x1000;
	module.LR_CREATEDIBSECTION = 0x2000;
	module.LR_COPYFROMRESOURCE = 0x4000;
	module.LR_SHARED = 0x8000;


	module.DI_MASK = 0x0001;
	module.DI_IMAGE = 0x0002;
	module.DI_NORMAL = 0x0003;
	module.DI_COMPAT = 0x0004;
	module.DI_DEFAULTSIZE = 0x0008;
	//#if(_WIN32_WINNT >= 0x0501);
	module.DI_NOMIRROR = 0x0010;
	//#endif /* _WIN32_WINNT >= 0x0501 */


	//#if(WINVER >= 0x0400);
	module.RES_ICON = 1;
	module.RES_CURSOR = 2;
	//#endif /* WINVER >= 0x0400 */


	/*
	 * OEM Resource Ordinal Numbers
	 */
	module.OBM_CLOSE = 32754;
	module.OBM_UPARROW = 32753;
	module.OBM_DNARROW = 32752;
	module.OBM_RGARROW = 32751;
	module.OBM_LFARROW = 32750;
	module.OBM_REDUCE = 32749;
	module.OBM_ZOOM = 32748;
	module.OBM_RESTORE = 32747;
	module.OBM_REDUCED = 32746;
	module.OBM_ZOOMD = 32745;
	module.OBM_RESTORED = 32744;
	module.OBM_UPARROWD = 32743;
	module.OBM_DNARROWD = 32742;
	module.OBM_RGARROWD = 32741;
	module.OBM_LFARROWD = 32740;
	module.OBM_MNARROW = 32739;
	module.OBM_COMBO = 32738;
	module.OBM_UPARROWI = 32737;
	module.OBM_DNARROWI = 32736;
	module.OBM_RGARROWI = 32735;
	module.OBM_LFARROWI = 32734;

	module.OBM_OLD_CLOSE = 32767;
	module.OBM_SIZE = 32766;
	module.OBM_OLD_UPARROW = 32765;
	module.OBM_OLD_DNARROW = 32764;
	module.OBM_OLD_RGARROW = 32763;
	module.OBM_OLD_LFARROW = 32762;
	module.OBM_BTSIZE = 32761;
	module.OBM_CHECK = 32760;
	module.OBM_CHECKBOXES = 32759;
	module.OBM_BTNCORNERS = 32758;
	module.OBM_OLD_REDUCE = 32757;
	module.OBM_OLD_ZOOM = 32756;
	module.OBM_OLD_RESTORE = 32755;


	module.OCR_NORMAL = 32512;
	module.OCR_IBEAM = 32513;
	module.OCR_WAIT = 32514;
	module.OCR_CROSS = 32515;
	module.OCR_UP = 32516;
	module.OCR_SIZE = 32640; /* OBSOLETE: use OCR_SIZEALL */
	module.OCR_ICON = 32641; /* OBSOLETE: use OCR_NORMAL */
	module.OCR_SIZENWSE = 32642;
	module.OCR_SIZENESW = 32643;
	module.OCR_SIZEWE = 32644;
	module.OCR_SIZENS = 32645;
	module.OCR_SIZEALL = 32646;
	module.OCR_ICOCUR = 32647; /* OBSOLETE: use OIC_WINLOGO */
	module.OCR_NO = 32648;
	//#if(WINVER >= 0x0500);
	module.OCR_HAND = 32649;
	//#endif /* WINVER >= 0x0500 */
	//#if(WINVER >= 0x0400);
	module.OCR_APPSTARTING = 32650;
	//#endif /* WINVER >= 0x0400 */

	module.OIC_SAMPLE = 32512;
	module.OIC_HAND = 32513;
	module.OIC_QUES = 32514;
	module.OIC_BANG = 32515;
	module.OIC_NOTE = 32516;
	//#if(WINVER >= 0x0400);
	module.OIC_WINLOGO = 32517;
	module.OIC_WARNING = module.OIC_BANG;
	module.OIC_ERROR = module.OIC_HAND;
	module.OIC_INFORMATION = module.OIC_NOTE;
	//#endif /* WINVER >= 0x0400 */


	module.ORD_LANGDRIVER = 1; /* The ordinal number for the entry point of
	= ** language drivers.
	= */


	/*
	 * Standard Icon IDs
	 */
	/* WINVER >= 0x0400 */


	/*
	 * Dialog Box Command IDs
	 */
	module.IDOK = 1;
	module.IDCANCEL = 2;
	module.IDABORT = 3;
	module.IDRETRY = 4;
	module.IDIGNORE = 5;
	module.IDYES = 6;
	module.IDNO = 7;
	//#if(WINVER >= 0x0400);
	module.IDCLOSE = 8;
	module.IDHELP = 9;
	//#endif /* WINVER >= 0x0400 */

	//#if(WINVER >= 0x0500);
	module.IDTRYAGAIN = 10;
	module.IDCONTINUE = 11;
	//#endif /* WINVER >= 0x0500 */

	//#if(WINVER >= 0x0501);
	//#ifndef IDTIMEOUT
	module.IDTIMEOUT = 32000;
	//#endif
	//#endif /* WINVER >= 0x0501 */


	/*
	 * Edit Control Styles
	 */
	module.ES_LEFT = 0x0000;
	module.ES_CENTER = 0x0001;
	module.ES_RIGHT = 0x0002;
	module.ES_MULTILINE = 0x0004;
	module.ES_UPPERCASE = 0x0008;
	module.ES_LOWERCASE = 0x0010;
	module.ES_PASSWORD = 0x0020;
	module.ES_AUTOVSCROLL = 0x0040;
	module.ES_AUTOHSCROLL = 0x0080;
	module.ES_NOHIDESEL = 0x0100;
	module.ES_OEMCONVERT = 0x0400;
	module.ES_READONLY = 0x0800;
	module.ES_WANTRETURN = 0x1000;
	//#if(WINVER >= 0x0400);
	module.ES_NUMBER = 0x2000;
	//#endif; /* WINVER >= 0x0400 */


	//#endif; /* !NOWINSTYLES */

	/*
	 * Edit Control Notification Codes
	 */
	module.EN_SETFOCUS = 0x0100;
	module.EN_KILLFOCUS = 0x0200;
	module.EN_CHANGE = 0x0300;
	module.EN_UPDATE = 0x0400;
	module.EN_ERRSPACE = 0x0500;
	module.EN_MAXTEXT = 0x0501;
	module.EN_HSCROLL = 0x0601;
	module.EN_VSCROLL = 0x0602;

	//#if(_WIN32_WINNT >= 0x0500);
	module.EN_ALIGN_LTR_EC = 0x0700;
	module.EN_ALIGN_RTL_EC = 0x0701;
	//#endif; /* _WIN32_WINNT >= 0x0500 */

	//#if(WINVER >= 0x0400);
	/* Edit control EM_SETMARGIN parameters */
	module.EC_LEFTMARGIN = 0x0001;
	module.EC_RIGHTMARGIN = 0x0002;
	module.EC_USEFONTINFO = 0xffff;
	//#endif; /* WINVER >= 0x0400 */

	//#if(WINVER >= 0x0500);
	/* wParam of EM_GET/SETIMESTATUS = */
	module.EMSIS_COMPOSITIONSTRING = 0x0001;

	/* lParam for EMSIS_COMPOSITIONSTRING = */
	module.EIMES_GETCOMPSTRATONCE = 0x0001;
	module.EIMES_CANCELCOMPSTRINFOCUS = 0x0002;
	module.EIMES_COMPLETECOMPSTRKILLFOCUS = 0x0004;
	//#endif; /* WINVER >= 0x0500 */

	//#ifndef NOWINMESSAGES


	/*
	 * Edit Control Messages
	 */
	module.EM_GETSEL = 0x00B0;
	module.EM_SETSEL = 0x00B1;
	module.EM_GETRECT = 0x00B2;
	module.EM_SETRECT = 0x00B3;
	module.EM_SETRECTNP = 0x00B4;
	module.EM_SCROLL = 0x00B5;
	module.EM_LINESCROLL = 0x00B6;
	module.EM_SCROLLCARET = 0x00B7;
	module.EM_GETMODIFY = 0x00B8;
	module.EM_SETMODIFY = 0x00B9;
	module.EM_GETLINECOUNT = 0x00BA;
	module.EM_LINEINDEX = 0x00BB;
	module.EM_SETHANDLE = 0x00BC;
	module.EM_GETHANDLE = 0x00BD;
	module.EM_GETTHUMB = 0x00BE;
	module.EM_LINELENGTH = 0x00C1;
	module.EM_REPLACESEL = 0x00C2;
	module.EM_GETLINE = 0x00C4;
	module.EM_LIMITTEXT = 0x00C5;
	module.EM_CANUNDO = 0x00C6;
	module.EM_UNDO = 0x00C7;
	module.EM_FMTLINES = 0x00C8;
	module.EM_LINEFROMCHAR = 0x00C9;
	module.EM_SETTABSTOPS = 0x00CB;
	module.EM_SETPASSWORDCHAR = 0x00CC;
	module.EM_EMPTYUNDOBUFFER = 0x00CD;
	module.EM_GETFIRSTVISIBLELINE = 0x00CE;
	module.EM_SETREADONLY = 0x00CF;
	module.EM_SETWORDBREAKPROC = 0x00D0;
	module.EM_GETWORDBREAKPROC = 0x00D1;
	module.EM_GETPASSWORDCHAR = 0x00D2;
	//#if(WINVER >= 0x0400);
	module.EM_SETMARGINS = 0x00D3;
	module.EM_GETMARGINS = 0x00D4;
	module.EM_SETLIMITTEXT = module.EM_LIMITTEXT; /* ;win40 Name change */
	module.EM_GETLIMITTEXT = 0x00D5;
	module.EM_POSFROMCHAR = 0x00D6;
	module.EM_CHARFROMPOS = 0x00D7;
	//#endif; /* WINVER >= 0x0400 */

	//#if(WINVER >= 0x0500);
	module.EM_SETIMESTATUS = 0x00D8;
	module.EM_GETIMESTATUS = 0x00D9;
	//#endif; /* WINVER >= 0x0500 */


	//#endif; /* !NOWINMESSAGES */

	/*
	 * EDITWORDBREAKPROC code values
	 */
	module.WB_LEFT = 0;
	module.WB_RIGHT = 1;
	module.WB_ISDELIMITER = 2;


	/*
	 * Button Control Styles
	 */
	module.BS_PUSHBUTTON = 0x00000000;
	module.BS_DEFPUSHBUTTON = 0x00000001;
	module.BS_CHECKBOX = 0x00000002;
	module.BS_AUTOCHECKBOX = 0x00000003;
	module.BS_RADIOBUTTON = 0x00000004;
	module.BS_3STATE = 0x00000005;
	module.BS_AUTO3STATE = 0x00000006;
	module.BS_GROUPBOX = 0x00000007;
	module.BS_USERBUTTON = 0x00000008;
	module.BS_AUTORADIOBUTTON = 0x00000009;
	module.BS_PUSHBOX = 0x0000000A;
	module.BS_OWNERDRAW = 0x0000000B;
	module.BS_TYPEMASK = 0x0000000F;
	module.BS_LEFTTEXT = 0x00000020;
	//#if(WINVER >= 0x0400);
	module.BS_TEXT = 0x00000000;
	module.BS_ICON = 0x00000040;
	module.BS_BITMAP = 0x00000080;
	module.BS_LEFT = 0x00000100;
	module.BS_RIGHT = 0x00000200;
	module.BS_CENTER = 0x00000300;
	module.BS_TOP = 0x00000400;
	module.BS_BOTTOM = 0x00000800;
	module.BS_VCENTER = 0x00000C00;
	module.BS_PUSHLIKE = 0x00001000;
	module.BS_MULTILINE = 0x00002000;
	module.BS_NOTIFY = 0x00004000;
	module.BS_FLAT = 0x00008000;
	module.BS_RIGHTBUTTON = module.BS_LEFTTEXT;
	//#endif; /* WINVER >= 0x0400 */

	/*
	 * User Button Notification Codes
	 */
	module.BN_CLICKED = 0;
	module.BN_PAINT = 1;
	module.BN_HILITE = 2;
	module.BN_UNHILITE = 3;
	module.BN_DISABLE = 4;
	module.BN_DOUBLECLICKED = 5;
	//#if(WINVER >= 0x0400);
	module.BN_PUSHED = module.BN_HILITE;
	module.BN_UNPUSHED = module.BN_UNHILITE;
	module.BN_DBLCLK = module.BN_DOUBLECLICKED;
	module.BN_SETFOCUS = 6;
	module.BN_KILLFOCUS = 7;
	//#endif; /* WINVER >= 0x0400 */

	/*
	 * Button Control Messages
	 */
	module.BM_GETCHECK = 0x00F0;
	module.BM_SETCHECK = 0x00F1;
	module.BM_GETSTATE = 0x00F2;
	module.BM_SETSTATE = 0x00F3;
	module.BM_SETSTYLE = 0x00F4;
	//#if(WINVER >= 0x0400);
	module.BM_CLICK = 0x00F5;
	module.BM_GETIMAGE = 0x00F6;
	module.BM_SETIMAGE = 0x00F7;

	module.BST_UNCHECKED = 0x0000;
	module.BST_CHECKED = 0x0001;
	module.BST_INDETERMINATE = 0x0002;
	module.BST_PUSHED = 0x0004;
	module.BST_FOCUS = 0x0008;
	//#endif; /* WINVER >= 0x0400 */

	/*
	 * Static Control Constants
	 */
	module.SS_LEFT = 0x00000000;
	module.SS_CENTER = 0x00000001;
	module.SS_RIGHT = 0x00000002;
	module.SS_ICON = 0x00000003;
	module.SS_BLACKRECT = 0x00000004;
	module.SS_GRAYRECT = 0x00000005;
	module.SS_WHITERECT = 0x00000006;
	module.SS_BLACKFRAME = 0x00000007;
	module.SS_GRAYFRAME = 0x00000008;
	module.SS_WHITEFRAME = 0x00000009;
	module.SS_USERITEM = 0x0000000A;
	module.SS_SIMPLE = 0x0000000B;
	module.SS_LEFTNOWORDWRAP = 0x0000000C;
	//#if(WINVER >= 0x0400);
	module.SS_OWNERDRAW = 0x0000000D;
	module.SS_BITMAP = 0x0000000E;
	module.SS_ENHMETAFILE = 0x0000000F;
	module.SS_ETCHEDHORZ = 0x00000010;
	module.SS_ETCHEDVERT = 0x00000011;
	module.SS_ETCHEDFRAME = 0x00000012;
	module.SS_TYPEMASK = 0x0000001F;
	//#endif; /* WINVER >= 0x0400 */
	//#if(WINVER >= 0x0501);
	module.SS_REALSIZECONTROL = 0x00000040;
	//#endif; /* WINVER >= 0x0501 */
	module.SS_NOPREFIX = 0x00000080; /* Don't do "&" character translation */
	//#if(WINVER >= 0x0400);
	module.SS_NOTIFY = 0x00000100;
	module.SS_CENTERIMAGE = 0x00000200;
	module.SS_RIGHTJUST = 0x00000400;
	module.SS_REALSIZEIMAGE = 0x00000800;
	module.SS_SUNKEN = 0x00001000;
	module.SS_EDITCONTROL = 0x00002000;
	module.SS_ENDELLIPSIS = 0x00004000;
	module.SS_PATHELLIPSIS = 0x00008000;
	module.SS_WORDELLIPSIS = 0x0000C000;
	module.SS_ELLIPSISMASK = 0x0000C000;
	//#endif; /* WINVER >= 0x0400 */


	/*
	 * Static Control Mesages
	 */
	module.STM_SETICON = 0x0170;
	module.STM_GETICON = 0x0171;
	//#if(WINVER >= 0x0400);
	module.STM_SETIMAGE = 0x0172;
	module.STM_GETIMAGE = 0x0173;
	module.STN_CLICKED = 0;
	module.STN_DBLCLK = 1;
	module.STN_ENABLE = 2;
	module.STN_DISABLE = 3;
	//#endif; /* WINVER >= 0x0400 */
	module.STM_MSGMAX = 0x0174;
	//#endif; /* !NOWINMESSAGES */


	/*
	 * Get/SetWindowWord/Long offsets for use with WC_DIALOG windows
	 */
	module.DWL_MSGRESULT = 0;
	module.DWL_DLGPROC = 4;
	module.DWL_USER = 8;


	module.DWLP_MSGRESULT = 0;
	//module.DWLP_DLGPROC = DWLP_MSGRESULT + sizeof(LRESULT)
	//module.DWLP_USER = DWLP_DLGPROC + sizeof(DLGPROC)


	/*
	 * DlgDirList, DlgDirListComboBox flags values
	 */
	module.DDL_READWRITE = 0x0000;
	module.DDL_READONLY = 0x0001;
	module.DDL_HIDDEN = 0x0002;
	module.DDL_SYSTEM = 0x0004;
	module.DDL_DIRECTORY = 0x0010;
	module.DDL_ARCHIVE = 0x0020;

	module.DDL_POSTMSGS = 0x2000;
	module.DDL_DRIVES = 0x4000;
	module.DDL_EXCLUSIVE = 0x8000;

	/*
	 * Dialog Styles
	 */
	module.DS_ABSALIGN = 0x01;
	module.DS_SYSMODAL = 0x02;
	module.DS_LOCALEDIT = 0x20; /* Edit items get Local storage. */
	module.DS_SETFONT = 0x40; /* User specified font for Dlg controls */
	module.DS_MODALFRAME = 0x80; /* Can be combined with WS_CAPTION = */
	module.DS_NOIDLEMSG = 0x100; /* WM_ENTERIDLE message will not be sent */
	module.DS_SETFOREGROUND = 0x200; /* not in win3.1 */


	//#if(WINVER >= 0x0400);
	module.DS_3DLOOK = 0x0004;
	module.DS_FIXEDSYS = 0x0008;
	module.DS_NOFAILCREATE = 0x0010;
	module.DS_CONTROL = 0x0400;
	module.DS_CENTER = 0x0800;
	module.DS_CENTERMOUSE = 0x1000;
	module.DS_CONTEXTHELP = 0x2000;

	module.DS_SHELLFONT = (module.DS_SETFONT | module.DS_FIXEDSYS);
	//#endif; /* WINVER >= 0x0400 */

	//#if(_WIN32_WCE >= 0x0500);
	module.DS_USEPIXELS = 0x8000;
	//#endif

	/*
	 * Returned in HIWORD() of DM_GETDEFID result if msg is supported
	 */
	module.DC_HASDEFID = 0x534B;

	/*
	 * Dialog Codes
	 */
	module.DLGC_WANTARROWS = 0x0001; /* Control wants arrow keys = */
	module.DLGC_WANTTAB = 0x0002; /* Control wants tab keys = */
	module.DLGC_WANTALLKEYS = 0x0004; /* Control wants all keys = */
	module.DLGC_WANTMESSAGE = 0x0004; /* Pass message to control = */
	module.DLGC_HASSETSEL = 0x0008; /* Understands EM_SETSEL message = */
	module.DLGC_DEFPUSHBUTTON = 0x0010; /* Default pushbutton = */
	module.DLGC_UNDEFPUSHBUTTON = 0x0020; /* Non-default pushbutton = */
	module.DLGC_RADIOBUTTON = 0x0040; /* Radio button = */
	module.DLGC_WANTCHARS = 0x0080; /* Want WM_CHAR messages = */
	module.DLGC_STATIC = 0x0100; /* Static item: don't include = */
	module.DLGC_BUTTON = 0x2000; /* Button item: can be checked = */

	module.LB_CTLCODE = 0;

	/*
	 * Listbox Return Values
	 */
	module.LB_OKAY = 0;
	module.LB_ERR = (-1);
	module.LB_ERRSPACE = (-2);

	/*
	** = The idStaticPath parameter to DlgDirList can have the following values;
	** = ORed if the list box should show other details of the files along with;
	** = the name of the files;
	*/
	/* all other details also will be returned */


	/*
	 * Listbox Notification Codes
	 */
	module.LBN_ERRSPACE = (-2);
	module.LBN_SELCHANGE = 1;
	module.LBN_DBLCLK = 2;
	module.LBN_SELCANCEL = 3;
	module.LBN_SETFOCUS = 4;
	module.LBN_KILLFOCUS = 5;

	//#ifndef NOWINMESSAGES

	/*
	 * Listbox messages
	 */
	module.LB_ADDSTRING = 0x0180;
	module.LB_INSERTSTRING = 0x0181;
	module.LB_DELETESTRING = 0x0182;
	module.LB_SELITEMRANGEEX = 0x0183;
	module.LB_RESETCONTENT = 0x0184;
	module.LB_SETSEL = 0x0185;
	module.LB_SETCURSEL = 0x0186;
	module.LB_GETSEL = 0x0187;
	module.LB_GETCURSEL = 0x0188;
	module.LB_GETTEXT = 0x0189;
	module.LB_GETTEXTLEN = 0x018A;
	module.LB_GETCOUNT = 0x018B;
	module.LB_SELECTSTRING = 0x018C;
	module.LB_DIR = 0x018D;
	module.LB_GETTOPINDEX = 0x018E;
	module.LB_FINDSTRING = 0x018F;
	module.LB_GETSELCOUNT = 0x0190;
	module.LB_GETSELITEMS = 0x0191;
	module.LB_SETTABSTOPS = 0x0192;
	module.LB_GETHORIZONTALEXTENT = 0x0193;
	module.LB_SETHORIZONTALEXTENT = 0x0194;
	module.LB_SETCOLUMNWIDTH = 0x0195;
	module.LB_ADDFILE = 0x0196;
	module.LB_SETTOPINDEX = 0x0197;
	module.LB_GETITEMRECT = 0x0198;
	module.LB_GETITEMDATA = 0x0199;
	module.LB_SETITEMDATA = 0x019A;
	module.LB_SELITEMRANGE = 0x019B;
	module.LB_SETANCHORINDEX = 0x019C;
	module.LB_GETANCHORINDEX = 0x019D;
	module.LB_SETCARETINDEX = 0x019E;
	module.LB_GETCARETINDEX = 0x019F;
	module.LB_SETITEMHEIGHT = 0x01A0;
	module.LB_GETITEMHEIGHT = 0x01A1;
	module.LB_FINDSTRINGEXACT = 0x01A2;
	module.LB_SETLOCALE = 0x01A5;
	module.LB_GETLOCALE = 0x01A6;
	module.LB_SETCOUNT = 0x01A7;
	//#if(WINVER >= 0x0400);
	module.LB_INITSTORAGE = 0x01A8;
	module.LB_ITEMFROMPOINT = 0x01A9;
	//#endif; /* WINVER >= 0x0400 */
	//#if(_WIN32_WCE >= 0x0400);
	module.LB_MULTIPLEADDSTRING = 0x01B1;
	//#endif


	//#if(_WIN32_WINNT >= 0x0501);
	module.LB_GETLISTBOXINFO = 0x01B2;
	//#endif; /* _WIN32_WINNT >= 0x0501 */

	//..WINVER
	//#if(_WIN32_WINNT >= 0x0501);
	module.LB_MSGMAX = 0x01B3;
	//#elif(_WIN32_WCE >= 0x0400);
	//module.LB_MSGMAX = 0x01B1;
	//#elif(WINVER >= 0x0400);
	//module.LB_MSGMAX = 0x01B0;
	////#else
	//module.LB_MSGMAX = 0x01A8;
	//#endif

	//#endif; /* !NOWINMESSAGES */

	//#ifndef NOWINSTYLES


	/*
	 * Listbox Styles
	 */
	module.LBS_NOTIFY = 0x0001;
	module.LBS_SORT = 0x0002;
	module.LBS_NOREDRAW = 0x0004;
	module.LBS_MULTIPLESEL = 0x0008;
	module.LBS_OWNERDRAWFIXED = 0x0010;
	module.LBS_OWNERDRAWVARIABLE = 0x0020;
	module.LBS_HASSTRINGS = 0x0040;
	module.LBS_USETABSTOPS = 0x0080;
	module.LBS_NOINTEGRALHEIGHT = 0x0100;
	module.LBS_MULTICOLUMN = 0x0200;
	module.LBS_WANTKEYBOARDINPUT = 0x0400;
	module.LBS_EXTENDEDSEL = 0x0800;
	module.LBS_DISABLENOSCROLL = 0x1000;
	module.LBS_NODATA = 0x2000;
	//#if(WINVER >= 0x0400);
	module.LBS_NOSEL = 0x4000;
	//#endif; /* WINVER >= 0x0400 */
	module.LBS_COMBOBOX = 0x8000;

	module.LBS_STANDARD = (module.LBS_NOTIFY | module.LBS_SORT | module.WS_VSCROLL | module.WS_BORDER);


	//#endif; /* !NOWINSTYLES */


	/*
	 * Combo Box return Values
	 */
	module.CB_OKAY = 0;
	module.CB_ERR = (-1);
	module.CB_ERRSPACE = (-2);


	/*
	 * Combo Box Notification Codes
	 */
	module.CBN_ERRSPACE = (-1);
	module.CBN_SELCHANGE = 1;
	module.CBN_DBLCLK = 2;
	module.CBN_SETFOCUS = 3;
	module.CBN_KILLFOCUS = 4;
	module.CBN_EDITCHANGE = 5;
	module.CBN_EDITUPDATE = 6;
	module.CBN_DROPDOWN = 7;
	module.CBN_CLOSEUP = 8;
	module.CBN_SELENDOK = 9;
	module.CBN_SELENDCANCEL = 10;

	//#ifndef NOWINSTYLES

	/*
	 * Combo Box styles
	 */
	module.CBS_SIMPLE = 0x0001;
	module.CBS_DROPDOWN = 0x0002;
	module.CBS_DROPDOWNLIST = 0x0003;
	module.CBS_OWNERDRAWFIXED = 0x0010;
	module.CBS_OWNERDRAWVARIABLE = 0x0020;
	module.CBS_AUTOHSCROLL = 0x0040;
	module.CBS_OEMCONVERT = 0x0080;
	module.CBS_SORT = 0x0100;
	module.CBS_HASSTRINGS = 0x0200;
	module.CBS_NOINTEGRALHEIGHT = 0x0400;
	module.CBS_DISABLENOSCROLL = 0x0800;
	//#if(WINVER >= 0x0400);
	module.CBS_UPPERCASE = 0x2000;
	module.CBS_LOWERCASE = 0x4000;
	//#endif; /* WINVER >= 0x0400 */

	//#endif ; /* !NOWINSTYLES */


	/*
	 * Combo Box messages
	 */
	//#ifndef NOWINMESSAGES
	module.CB_GETEDITSEL = 0x0140;
	module.CB_LIMITTEXT = 0x0141;
	module.CB_SETEDITSEL = 0x0142;
	module.CB_ADDSTRING = 0x0143;
	module.CB_DELETESTRING = 0x0144;
	module.CB_DIR = 0x0145;
	module.CB_GETCOUNT = 0x0146;
	module.CB_GETCURSEL = 0x0147;
	module.CB_GETLBTEXT = 0x0148;
	module.CB_GETLBTEXTLEN = 0x0149;
	module.CB_INSERTSTRING = 0x014A;
	module.CB_RESETCONTENT = 0x014B;
	module.CB_FINDSTRING = 0x014C;
	module.CB_SELECTSTRING = 0x014D;
	module.CB_SETCURSEL = 0x014E;
	module.CB_SHOWDROPDOWN = 0x014F;
	module.CB_GETITEMDATA = 0x0150;
	module.CB_SETITEMDATA = 0x0151;
	module.CB_GETDROPPEDCONTROLRECT = 0x0152;
	module.CB_SETITEMHEIGHT = 0x0153;
	module.CB_GETITEMHEIGHT = 0x0154;
	module.CB_SETEXTENDEDUI = 0x0155;
	module.CB_GETEXTENDEDUI = 0x0156;
	module.CB_GETDROPPEDSTATE = 0x0157;
	module.CB_FINDSTRINGEXACT = 0x0158;
	module.CB_SETLOCALE = 0x0159;
	module.CB_GETLOCALE = 0x015A;
	//#if(WINVER >= 0x0400);
	module.CB_GETTOPINDEX = 0x015b;
	module.CB_SETTOPINDEX = 0x015c;
	module.CB_GETHORIZONTALEXTENT = 0x015d;
	module.CB_SETHORIZONTALEXTENT = 0x015e;
	module.CB_GETDROPPEDWIDTH = 0x015f;
	module.CB_SETDROPPEDWIDTH = 0x0160;
	module.CB_INITSTORAGE = 0x0161;
	//#if(_WIN32_WCE >= 0x0400);
	module.CB_MULTIPLEADDSTRING = 0x0163;
	//#endif
	//#endif; /* WINVER >= 0x0400 */

	//#if(_WIN32_WINNT >= 0x0501);
	module.CB_GETCOMBOBOXINFO = 0x0164;
	//#endif; /* _WIN32_WINNT >= 0x0501 */

	//..WINVER
	//#if(_WIN32_WINNT >= 0x0501);
	module.CB_MSGMAX = 0x0165;
	//#elif(_WIN32_WCE >= 0x0400);
	//module.CB_MSGMAX = 0x0163;
	////#elif(WINVER >= 0x0400);
	//module.CB_MSGMAX = 0x0162;
	////#else
	//module.CB_MSGMAX = 0x015B;
	//#endif
	//#endif ; /* !NOWINMESSAGES */



	//#ifndef NOWINSTYLES


	/*
	 * Scroll Bar Styles
	 */
	module.SBS_HORZ = 0x0000;
	module.SBS_VERT = 0x0001;
	module.SBS_TOPALIGN = 0x0002;
	module.SBS_LEFTALIGN = 0x0002;
	module.SBS_BOTTOMALIGN = 0x0004;
	module.SBS_RIGHTALIGN = 0x0004;
	module.SBS_SIZEBOXTOPLEFTALIGN = 0x0002;
	module.SBS_SIZEBOXBOTTOMRIGHTALIGN = 0x0004;
	module.SBS_SIZEBOX = 0x0008;
	//#if(WINVER >= 0x0400);
	module.SBS_SIZEGRIP = 0x0010;
	//#endif; /* WINVER >= 0x0400 */


	//#endif; /* !NOWINSTYLES */

	/*
	 * Scroll bar messages
	 */
	//#ifndef NOWINMESSAGES
	module.SBM_SETPOS = 0x00E0; /*not in win3.1 */
	module.SBM_GETPOS = 0x00E1; /*not in win3.1 */
	module.SBM_SETRANGE = 0x00E2; /*not in win3.1 */
	module.SBM_SETRANGEREDRAW = 0x00E6; /*not in win3.1 */
	module.SBM_GETRANGE = 0x00E3; /*not in win3.1 */
	module.SBM_ENABLE_ARROWS = 0x00E4; /*not in win3.1 */
	//#if(WINVER >= 0x0400);
	module.SBM_SETSCROLLINFO = 0x00E9;
	module.SBM_GETSCROLLINFO = 0x00EA;
	//#endif; /* WINVER >= 0x0400 */

	//#if(_WIN32_WINNT >= 0x0501);
	module.SBM_GETSCROLLBARINFO = 0x00EB;
	//#endif; /* _WIN32_WINNT >= 0x0501 */

	//#if(WINVER >= 0x0400);
	module.SIF_RANGE = 0x0001;
	module.SIF_PAGE = 0x0002;
	module.SIF_POS = 0x0004;
	module.SIF_DISABLENOSCROLL = 0x0008;
	module.SIF_TRACKPOS = 0x0010;
	module.SIF_ALL = (module.SIF_RANGE | module.SIF_PAGE | module.SIF_POS | module.SIF_TRACKPOS);



	/*
	 * MDI client style bits
	 */
	module.MDIS_ALLCHILDSTYLES = 0x0001;

	/*
	 * wParam Flags for WM_MDITILE and WM_MDICASCADE messages.
	 */
	module.MDITILE_VERTICAL = 0x0000; /*not in win3.1 */
	module.MDITILE_HORIZONTAL = 0x0001; /*not in win3.1 */
	module.MDITILE_SKIPDISABLED = 0x0002; /*not in win3.1 */
	//#if(_WIN32_WINNT >= 0x0500);
	module.MDITILE_ZORDER = 0x0004;
	//#endif /* _WIN32_WINNT >= 0x0500 */


	/*
	 * Commands to pass to WinHelp()
	 */
	module.HELP_CONTEXT = 0x0001; /* Display topic in ulTopic */
	module.HELP_QUIT = 0x0002; /* Terminate help */
	module.HELP_INDEX = 0x0003; /* Display index */
	module.HELP_CONTENTS = 0x0003;
	module.HELP_HELPONHELP = 0x0004; /* Display help on using help */
	module.HELP_SETINDEX = 0x0005; /* Set current Index for multi index help */
	module.HELP_SETCONTENTS = 0x0005;
	module.HELP_CONTEXTPOPUP = 0x0008;
	module.HELP_FORCEFILE = 0x0009;
	module.HELP_KEY = 0x0101; /* Display topic for keyword in offabData */
	module.HELP_COMMAND = 0x0102;
	module.HELP_PARTIALKEY = 0x0105;
	module.HELP_MULTIKEY = 0x0201;
	module.HELP_SETWINPOS = 0x0203;
	//#if(WINVER >= 0x0400);
	module.HELP_CONTEXTMENU = 0x000a;
	module.HELP_FINDER = 0x000b;
	module.HELP_WM_HELP = 0x000c;
	module.HELP_SETPOPUP_POS = 0x000d;

	module.HELP_TCARD = 0x8000;
	module.HELP_TCARD_DATA = 0x0010;
	module.HELP_TCARD_OTHER_CALLER = 0x0011;

	// These are in winhelp.h in Win95.
	module.IDH_NO_HELP = 28440;
	module.IDH_MISSING_CONTEXT = 28441; // Control doesn't have matching help context
	module.IDH_GENERIC_HELP_BUTTON = 28442; // Property sheet help button
	module.IDH_OK = 28443;
	module.IDH_CANCEL = 28444;
	module.IDH_HELP = 28445;

	//#endif /* WINVER >= 0x0400 */

	module.GR_GDIOBJECTS = 0; /* Count of GDI objects */
	module.GR_USEROBJECTS = 1; /* Count of USER objects */

	/*
	 * Parameter for SystemParametersInfo()
	 */

	module.SPI_GETBEEP = 0x0001;
	module.SPI_SETBEEP = 0x0002;
	module.SPI_GETMOUSE = 0x0003;
	module.SPI_SETMOUSE = 0x0004;
	module.SPI_GETBORDER = 0x0005;
	module.SPI_SETBORDER = 0x0006;
	module.SPI_GETKEYBOARDSPEED = 0x000A;
	module.SPI_SETKEYBOARDSPEED = 0x000B;
	module.SPI_LANGDRIVER = 0x000C;
	module.SPI_ICONHORIZONTALSPACING = 0x000D;
	module.SPI_GETSCREENSAVETIMEOUT = 0x000E;
	module.SPI_SETSCREENSAVETIMEOUT = 0x000F;
	module.SPI_GETSCREENSAVEACTIVE = 0x0010;
	module.SPI_SETSCREENSAVEACTIVE = 0x0011;
	module.SPI_GETGRIDGRANULARITY = 0x0012;
	module.SPI_SETGRIDGRANULARITY = 0x0013;
	module.SPI_SETDESKWALLPAPER = 0x0014;
	module.SPI_SETDESKPATTERN = 0x0015;
	module.SPI_GETKEYBOARDDELAY = 0x0016;
	module.SPI_SETKEYBOARDDELAY = 0x0017;
	module.SPI_ICONVERTICALSPACING = 0x0018;
	module.SPI_GETICONTITLEWRAP = 0x0019;
	module.SPI_SETICONTITLEWRAP = 0x001A;
	module.SPI_GETMENUDROPALIGNMENT = 0x001B;
	module.SPI_SETMENUDROPALIGNMENT = 0x001C;
	module.SPI_SETDOUBLECLKWIDTH = 0x001D;
	module.SPI_SETDOUBLECLKHEIGHT = 0x001E;
	module.SPI_GETICONTITLELOGFONT = 0x001F;
	module.SPI_SETDOUBLECLICKTIME = 0x0020;
	module.SPI_SETMOUSEBUTTONSWAP = 0x0021;
	module.SPI_SETICONTITLELOGFONT = 0x0022;
	module.SPI_GETFASTTASKSWITCH = 0x0023;
	module.SPI_SETFASTTASKSWITCH = 0x0024;
	//#if(WINVER >= 0x0400);
	module.SPI_SETDRAGFULLWINDOWS = 0x0025;
	module.SPI_GETDRAGFULLWINDOWS = 0x0026;
	module.SPI_GETNONCLIENTMETRICS = 0x0029;
	module.SPI_SETNONCLIENTMETRICS = 0x002A;
	module.SPI_GETMINIMIZEDMETRICS = 0x002B;
	module.SPI_SETMINIMIZEDMETRICS = 0x002C;
	module.SPI_GETICONMETRICS = 0x002D;
	module.SPI_SETICONMETRICS = 0x002E;
	module.SPI_SETWORKAREA = 0x002F;
	module.SPI_GETWORKAREA = 0x0030;
	module.SPI_SETPENWINDOWS = 0x0031;

	module.SPI_GETHIGHCONTRAST = 0x0042;
	module.SPI_SETHIGHCONTRAST = 0x0043;
	module.SPI_GETKEYBOARDPREF = 0x0044;
	module.SPI_SETKEYBOARDPREF = 0x0045;
	module.SPI_GETSCREENREADER = 0x0046;
	module.SPI_SETSCREENREADER = 0x0047;
	module.SPI_GETANIMATION = 0x0048;
	module.SPI_SETANIMATION = 0x0049;
	module.SPI_GETFONTSMOOTHING = 0x004A;
	module.SPI_SETFONTSMOOTHING = 0x004B;
	module.SPI_SETDRAGWIDTH = 0x004C;
	module.SPI_SETDRAGHEIGHT = 0x004D;
	module.SPI_SETHANDHELD = 0x004E;
	module.SPI_GETLOWPOWERTIMEOUT = 0x004F;
	module.SPI_GETPOWEROFFTIMEOUT = 0x0050;
	module.SPI_SETLOWPOWERTIMEOUT = 0x0051;
	module.SPI_SETPOWEROFFTIMEOUT = 0x0052;
	module.SPI_GETLOWPOWERACTIVE = 0x0053;
	module.SPI_GETPOWEROFFACTIVE = 0x0054;
	module.SPI_SETLOWPOWERACTIVE = 0x0055;
	module.SPI_SETPOWEROFFACTIVE = 0x0056;
	module.SPI_SETCURSORS = 0x0057;
	module.SPI_SETICONS = 0x0058;
	module.SPI_GETDEFAULTINPUTLANG = 0x0059;
	module.SPI_SETDEFAULTINPUTLANG = 0x005A;
	module.SPI_SETLANGTOGGLE = 0x005B;
	module.SPI_GETWINDOWSEXTENSION = 0x005C;
	module.SPI_SETMOUSETRAILS = 0x005D;
	module.SPI_GETMOUSETRAILS = 0x005E;
	module.SPI_SETSCREENSAVERRUNNING = 0x0061;
	module.SPI_SCREENSAVERRUNNING = module.SPI_SETSCREENSAVERRUNNING;
	//#endif /* WINVER >= 0x0400 */
	module.SPI_GETFILTERKEYS = 0x0032;
	module.SPI_SETFILTERKEYS = 0x0033;
	module.SPI_GETTOGGLEKEYS = 0x0034;
	module.SPI_SETTOGGLEKEYS = 0x0035;
	module.SPI_GETMOUSEKEYS = 0x0036;
	module.SPI_SETMOUSEKEYS = 0x0037;
	module.SPI_GETSHOWSOUNDS = 0x0038;
	module.SPI_SETSHOWSOUNDS = 0x0039;
	module.SPI_GETSTICKYKEYS = 0x003A;
	module.SPI_SETSTICKYKEYS = 0x003B;
	module.SPI_GETACCESSTIMEOUT = 0x003C;
	module.SPI_SETACCESSTIMEOUT = 0x003D;
	//#if(WINVER >= 0x0400);
	module.SPI_GETSERIALKEYS = 0x003E;
	module.SPI_SETSERIALKEYS = 0x003F;
	//#endif /* WINVER >= 0x0400 */
	module.SPI_GETSOUNDSENTRY = 0x0040;
	module.SPI_SETSOUNDSENTRY = 0x0041;
	//#if(_WIN32_WINNT >= 0x0400);
	module.SPI_GETSNAPTODEFBUTTON = 0x005F;
	module.SPI_SETSNAPTODEFBUTTON = 0x0060;
	//#endif /* _WIN32_WINNT >= 0x0400 */
	//#if (_WIN32_WINNT >= 0x0400) || (_WIN32_WINDOWS > = 0x0400);
	module.SPI_GETMOUSEHOVERWIDTH = 0x0062;
	module.SPI_SETMOUSEHOVERWIDTH = 0x0063;
	module.SPI_GETMOUSEHOVERHEIGHT = 0x0064;
	module.SPI_SETMOUSEHOVERHEIGHT = 0x0065;
	module.SPI_GETMOUSEHOVERTIME = 0x0066;
	module.SPI_SETMOUSEHOVERTIME = 0x0067;
	module.SPI_GETWHEELSCROLLLINES = 0x0068;
	module.SPI_SETWHEELSCROLLLINES = 0x0069;
	module.SPI_GETMENUSHOWDELAY = 0x006A;
	module.SPI_SETMENUSHOWDELAY = 0x006B;


	module.SPI_GETSHOWIMEUI = 0x006E;
	module.SPI_SETSHOWIMEUI = 0x006F;
	//#endif


	//#if(WINVER >= 0x0500);
	module.SPI_GETMOUSESPEED = 0x0070;
	module.SPI_SETMOUSESPEED = 0x0071;
	module.SPI_GETSCREENSAVERRUNNING = 0x0072;
	module.SPI_GETDESKWALLPAPER = 0x0073;
	//#endif /* WINVER >= 0x0500 */


	//#if(WINVER >= 0x0500);
	module.SPI_GETACTIVEWINDOWTRACKING = 0x1000;
	module.SPI_SETACTIVEWINDOWTRACKING = 0x1001;
	module.SPI_GETMENUANIMATION = 0x1002;
	module.SPI_SETMENUANIMATION = 0x1003;
	module.SPI_GETCOMBOBOXANIMATION = 0x1004;
	module.SPI_SETCOMBOBOXANIMATION = 0x1005;
	module.SPI_GETLISTBOXSMOOTHSCROLLING = 0x1006;
	module.SPI_SETLISTBOXSMOOTHSCROLLING = 0x1007;
	module.SPI_GETGRADIENTCAPTIONS = 0x1008;
	module.SPI_SETGRADIENTCAPTIONS = 0x1009;
	module.SPI_GETKEYBOARDCUES = 0x100A;
	module.SPI_SETKEYBOARDCUES = 0x100B;
	module.SPI_GETMENUUNDERLINES = module.SPI_GETKEYBOARDCUES;
	module.SPI_SETMENUUNDERLINES = module.SPI_SETKEYBOARDCUES;
	module.SPI_GETACTIVEWNDTRKZORDER = 0x100C;
	module.SPI_SETACTIVEWNDTRKZORDER = 0x100D;
	module.SPI_GETHOTTRACKING = 0x100E;
	module.SPI_SETHOTTRACKING = 0x100F;
	module.SPI_GETMENUFADE = 0x1012;
	module.SPI_SETMENUFADE = 0x1013;
	module.SPI_GETSELECTIONFADE = 0x1014;
	module.SPI_SETSELECTIONFADE = 0x1015;
	module.SPI_GETTOOLTIPANIMATION = 0x1016;
	module.SPI_SETTOOLTIPANIMATION = 0x1017;
	module.SPI_GETTOOLTIPFADE = 0x1018;
	module.SPI_SETTOOLTIPFADE = 0x1019;
	module.SPI_GETCURSORSHADOW = 0x101A;
	module.SPI_SETCURSORSHADOW = 0x101B;
	//#if(_WIN32_WINNT >= 0x0501);
	module.SPI_GETMOUSESONAR = 0x101C;
	module.SPI_SETMOUSESONAR = 0x101D;
	module.SPI_GETMOUSECLICKLOCK = 0x101E;
	module.SPI_SETMOUSECLICKLOCK = 0x101F;
	module.SPI_GETMOUSEVANISH = 0x1020;
	module.SPI_SETMOUSEVANISH = 0x1021;
	module.SPI_GETFLATMENU = 0x1022;
	module.SPI_SETFLATMENU = 0x1023;
	module.SPI_GETDROPSHADOW = 0x1024;
	module.SPI_SETDROPSHADOW = 0x1025;
	module.SPI_GETBLOCKSENDINPUTRESETS = 0x1026;
	module.SPI_SETBLOCKSENDINPUTRESETS = 0x1027;
	//#endif /* _WIN32_WINNT >= 0x0501 */
	module.SPI_GETUIEFFECTS = 0x103E;
	module.SPI_SETUIEFFECTS = 0x103F;

	module.SPI_GETFOREGROUNDLOCKTIMEOUT = 0x2000;
	module.SPI_SETFOREGROUNDLOCKTIMEOUT = 0x2001;
	module.SPI_GETACTIVEWNDTRKTIMEOUT = 0x2002;
	module.SPI_SETACTIVEWNDTRKTIMEOUT = 0x2003;
	module.SPI_GETFOREGROUNDFLASHCOUNT = 0x2004;
	module.SPI_SETFOREGROUNDFLASHCOUNT = 0x2005;
	module.SPI_GETCARETWIDTH = 0x2006;
	module.SPI_SETCARETWIDTH = 0x2007;

	//#if(_WIN32_WINNT >= 0x0501);
	module.SPI_GETMOUSECLICKLOCKTIME = 0x2008;
	module.SPI_SETMOUSECLICKLOCKTIME = 0x2009;
	module.SPI_GETFONTSMOOTHINGTYPE = 0x200A;
	module.SPI_SETFONTSMOOTHINGTYPE = 0x200B;

	/* constants for SPI_GETFONTSMOOTHINGTYPE and SPI_SETFONTSMOOTHINGTYPE: */
	module.FE_FONTSMOOTHINGSTANDARD = 0x0001;
	module.FE_FONTSMOOTHINGCLEARTYPE = 0x0002;
	module.FE_FONTSMOOTHINGDOCKING = 0x8000;

	module.SPI_GETFONTSMOOTHINGCONTRAST = 0x200C;
	module.SPI_SETFONTSMOOTHINGCONTRAST = 0x200D;

	module.SPI_GETFOCUSBORDERWIDTH = 0x200E;
	module.SPI_SETFOCUSBORDERWIDTH = 0x200F;
	module.SPI_GETFOCUSBORDERHEIGHT = 0x2010;
	module.SPI_SETFOCUSBORDERHEIGHT = 0x2011;

	module.SPI_GETFONTSMOOTHINGORIENTATION = 0x2012;
	module.SPI_SETFONTSMOOTHINGORIENTATION = 0x2013;

	/* constants for SPI_GETFONTSMOOTHINGORIENTATION and SPI_SETFONTSMOOTHINGORIENTATION: */
	module.FE_FONTSMOOTHINGORIENTATIONBGR = 0x0000;
	module.FE_FONTSMOOTHINGORIENTATIONRGB = 0x0001;
	//#endif /* _WIN32_WINNT >= 0x0501 */

	//#endif /* WINVER >= 0x0500 */

	/*
	 * Flags
	 */
	module.SPIF_UPDATEINIFILE = 0x0001;
	module.SPIF_SENDWININICHANGE = 0x0002;
	module.SPIF_SENDCHANGE = module.SPIF_SENDWININICHANGE;

	module.METRICS_USEDEFAULT = -1;

	module.ARW_BOTTOMLEFT = 0x0000;
	module.ARW_BOTTOMRIGHT = 0x0001;
	module.ARW_TOPLEFT = 0x0002;
	module.ARW_TOPRIGHT = 0x0003;
	module.ARW_STARTMASK = 0x0003;
	module.ARW_STARTRIGHT = 0x0001;
	module.ARW_STARTTOP = 0x0002;

	module.ARW_LEFT = 0x0000;
	module.ARW_RIGHT = 0x0000;
	module.ARW_UP = 0x0004;
	module.ARW_DOWN = 0x0004;
	module.ARW_HIDE = 0x0008;

	/* flags for SERIALKEYS dwFlags field */
	module.SERKF_SERIALKEYSON = 0x00000001;
	module.SERKF_AVAILABLE = 0x00000002;
	module.SERKF_INDICATOR = 0x00000004;

	/* flags for HIGHCONTRAST dwFlags field */
	module.HCF_HIGHCONTRASTON = 0x00000001;
	module.HCF_AVAILABLE = 0x00000002;
	module.HCF_HOTKEYACTIVE = 0x00000004;
	module.HCF_CONFIRMHOTKEY = 0x00000008;
	module.HCF_HOTKEYSOUND = 0x00000010;
	module.HCF_INDICATOR = 0x00000020;
	module.HCF_HOTKEYAVAILABLE = 0x00000040;
	module.HCF_LOGONDESKTOP = 0x00000100;
	module.HCF_DEFAULTDESKTOP = 0x00000200;

	/* Flags for ChangeDisplaySettings */
	module.CDS_UPDATEREGISTRY = 0x00000001;
	module.CDS_TEST = 0x00000002;
	module.CDS_FULLSCREEN = 0x00000004;
	module.CDS_GLOBAL = 0x00000008;
	module.CDS_SET_PRIMARY = 0x00000010;
	module.CDS_VIDEOPARAMETERS = 0x00000020;
	module.CDS_RESET = 0x40000000;
	module.CDS_NORESET = 0x10000000;


	/* Return values for ChangeDisplaySettings */
	module.DISP_CHANGE_SUCCESSFUL = 0;
	module.DISP_CHANGE_RESTART = 1;
	module.DISP_CHANGE_FAILED = -1;
	module.DISP_CHANGE_BADMODE = -2;
	module.DISP_CHANGE_NOTUPDATED = -3;
	module.DISP_CHANGE_BADFLAGS = -4;
	module.DISP_CHANGE_BADPARAM = -5;
	//#if(_WIN32_WINNT >= 0x0501);
	module.DISP_CHANGE_BADDUALVIEW = -6;
	//#endif /* _WIN32_WINNT >= 0x0501 */

	/* Flags for EnumDisplaySettingsEx */
	module.EDS_RAWMODE = 0x00000002;


	/*
	 * FILTERKEYS dwFlags field
	 */
	module.FKF_FILTERKEYSON = 0x00000001;
	module.FKF_AVAILABLE = 0x00000002;
	module.FKF_HOTKEYACTIVE = 0x00000004;
	module.FKF_CONFIRMHOTKEY = 0x00000008;
	module.FKF_HOTKEYSOUND = 0x00000010;
	module.FKF_INDICATOR = 0x00000020;
	module.FKF_CLICKON = 0x00000040;

	/*
	 * STICKYKEYS dwFlags field
	 */
	module.SKF_STICKYKEYSON = 0x00000001;
	module.SKF_AVAILABLE = 0x00000002;
	module.SKF_HOTKEYACTIVE = 0x00000004;
	module.SKF_CONFIRMHOTKEY = 0x00000008;
	module.SKF_HOTKEYSOUND = 0x00000010;
	module.SKF_INDICATOR = 0x00000020;
	module.SKF_AUDIBLEFEEDBACK = 0x00000040;
	module.SKF_TRISTATE = 0x00000080;
	module.SKF_TWOKEYSOFF = 0x00000100;
	//#if(_WIN32_WINNT >= 0x0500);
	module.SKF_LALTLATCHED = 0x10000000;
	module.SKF_LCTLLATCHED = 0x04000000;
	module.SKF_LSHIFTLATCHED = 0x01000000;
	module.SKF_RALTLATCHED = 0x20000000;
	module.SKF_RCTLLATCHED = 0x08000000;
	module.SKF_RSHIFTLATCHED = 0x02000000;
	module.SKF_LWINLATCHED = 0x40000000;
	module.SKF_RWINLATCHED = 0x80000000;
	module.SKF_LALTLOCKED = 0x00100000;
	module.SKF_LCTLLOCKED = 0x00040000;
	module.SKF_LSHIFTLOCKED = 0x00010000;
	module.SKF_RALTLOCKED = 0x00200000;
	module.SKF_RCTLLOCKED = 0x00080000;
	module.SKF_RSHIFTLOCKED = 0x00020000;
	module.SKF_LWINLOCKED = 0x00400000;
	module.SKF_RWINLOCKED = 0x00800000;
	//#endif /* _WIN32_WINNT >= 0x0500 */


	/*
	 * MOUSEKEYS dwFlags field
	 */
	module.MKF_MOUSEKEYSON = 0x00000001;
	module.MKF_AVAILABLE = 0x00000002;
	module.MKF_HOTKEYACTIVE = 0x00000004;
	module.MKF_CONFIRMHOTKEY = 0x00000008;
	module.MKF_HOTKEYSOUND = 0x00000010;
	module.MKF_INDICATOR = 0x00000020;
	module.MKF_MODIFIERS = 0x00000040;
	module.MKF_REPLACENUMBERS = 0x00000080;
	//#if(_WIN32_WINNT >= 0x0500);
	module.MKF_LEFTBUTTONSEL = 0x10000000;
	module.MKF_RIGHTBUTTONSEL = 0x20000000;
	module.MKF_LEFTBUTTONDOWN = 0x01000000;
	module.MKF_RIGHTBUTTONDOWN = 0x02000000;
	module.MKF_MOUSEMODE = 0x80000000;
	//#endif /* _WIN32_WINNT >= 0x0500 */

	/*
	 * ACCESSTIMEOUT dwFlags field
	 */
	module.ATF_TIMEOUTON = 0x00000001;
	module.ATF_ONOFFFEEDBACK = 0x00000002;

	/* values for SOUNDSENTRY iFSGrafEffect field */
	module.SSGF_NONE = 0;
	module.SSGF_DISPLAY = 3;

	/* values for SOUNDSENTRY iFSTextEffect field */
	module.SSTF_NONE = 0;
	module.SSTF_CHARS = 1;
	module.SSTF_BORDER = 2;
	module.SSTF_DISPLAY = 3;

	/* values for SOUNDSENTRY iWindowsEffect field */
	module.SSWF_NONE = 0;
	module.SSWF_TITLE = 1;
	module.SSWF_WINDOW = 2;
	module.SSWF_DISPLAY = 3;
	module.SSWF_CUSTOM = 4;

	/*
	 * SOUNDSENTRY dwFlags field
	 */
	module.SSF_SOUNDSENTRYON = 0x00000001;
	module.SSF_AVAILABLE = 0x00000002;
	module.SSF_INDICATOR = 0x00000004;


	/*
	 * TOGGLEKEYS dwFlags field
	 */
	module.TKF_TOGGLEKEYSON = 0x00000001;
	module.TKF_AVAILABLE = 0x00000002;
	module.TKF_HOTKEYACTIVE = 0x00000004;
	module.TKF_CONFIRMHOTKEY = 0x00000008;
	module.TKF_HOTKEYSOUND = 0x00000010;
	module.TKF_INDICATOR = 0x00000020;


	/*
	 * SetLastErrorEx() types.
	 */

	module.SLE_ERROR = 0x00000001;
	module.SLE_MINORERROR = 0x00000002;
	module.SLE_WARNING = 0x00000003;


	/*
	 * Multimonitor API.
	 */

	module.MONITOR_DEFAULTTONULL = 0x00000000;
	module.MONITOR_DEFAULTTOPRIMARY = 0x00000001;
	module.MONITOR_DEFAULTTONEAREST = 0x00000002;

	module.MONITORINFOF_PRIMARY = 0x00000001;

	//#ifndef CCHDEVICENAME
	module.CCHDEVICENAME = 32;
	//#endif


	/*
	 * dwFlags for SetWinEventHook
	 */
	module.WINEVENT_OUTOFCONTEXT = 0x0000; // Events are ASYNC
	module.WINEVENT_SKIPOWNTHREAD = 0x0001; // Don't call back for events on installer's thread
	module.WINEVENT_SKIPOWNPROCESS = 0x0002; // Don't call back for events on installer's process
	module.WINEVENT_INCONTEXT = 0x0004; // Events are SYNC, this causes your dll to be injected into every process


	/*
	 * Common object IDs (cookies, only for sending WM_GETOBJECT to get at the
	 * thing in question). = Positive IDs are reserved for apps (app specific),
	 * negative IDs are system things and are global, 0 means "just little old
	 * me".
	 */
	module.CHILDID_SELF = 0;
	module.INDEXID_OBJECT = 0;
	module.INDEXID_CONTAINER = 0;

	/*
	 * Reserved IDs for system objects
	 */
	module.OBJID_WINDOW = (0x00000000);
	module.OBJID_SYSMENU = (0xFFFFFFFF);
	module.OBJID_TITLEBAR = (0xFFFFFFFE);
	module.OBJID_MENU = (0xFFFFFFFD);
	module.OBJID_CLIENT = (0xFFFFFFFC);
	module.OBJID_VSCROLL = (0xFFFFFFFB);
	module.OBJID_HSCROLL = (0xFFFFFFFA);
	module.OBJID_SIZEGRIP = (0xFFFFFFF9);
	module.OBJID_CARET = (0xFFFFFFF8);
	module.OBJID_CURSOR = (0xFFFFFFF7);
	module.OBJID_ALERT = (0xFFFFFFF6);
	module.OBJID_SOUND = (0xFFFFFFF5);
	module.OBJID_QUERYCLASSNAMEIDX = 0xFFFFFFF4;
	module.OBJID_NATIVEOM = 0xFFFFFFF0;

	/*
	 * EVENT DEFINITION
	 */
	module.EVENT_MIN = 0x00000001;
	module.EVENT_MAX = 0x7FFFFFFF;

	module.EVENT_SYSTEM_SOUND = 0x0001;

	module.EVENT_SYSTEM_ALERT = 0x0002;

	module.EVENT_SYSTEM_FOREGROUND = 0x0003;

	/*
	 * Menu
	 * = hwnd = is window (top level window or popup menu window);
	 * = idObject = is ID of control (OBJID_MENU, OBJID_SYSMENU, OBJID_SELF for popup)
	 * = idChild = is CHILDID_SELF;
	 *
	 * EVENT_SYSTEM_MENUSTART
	 * EVENT_SYSTEM_MENUEND
	 * For MENUSTART, hwnd+idObject+idChild refers to the control with the menu bar,
	 * = or the control bringing up the context menu.
	 *
	 * Sent when entering into and leaving from menu mode (system, app bar, and
	 * track popups).
	 */
	module.EVENT_SYSTEM_MENUSTART = 0x0004;
	module.EVENT_SYSTEM_MENUEND = 0x0005;

	/*
	 * EVENT_SYSTEM_MENUPOPUPSTART
	 * EVENT_SYSTEM_MENUPOPUPEND
	 * Sent when a menu popup comes up and just before it is taken down. = Note;
	 * that for a call to TrackPopupMenu(), a client will see EVENT_SYSTEM_MENUSTART
	 * followed almost immediately by EVENT_SYSTEM_MENUPOPUPSTART for the popup
	 * being shown.
	 *
	 * For MENUPOPUP, hwnd+idObject+idChild refers to the NEW popup coming up, not the
	 * parent item which is hierarchical. = You can get the parent menu/popup by
	 * asking for the accParent object.
	 */
	module.EVENT_SYSTEM_MENUPOPUPSTART = 0x0006;
	module.EVENT_SYSTEM_MENUPOPUPEND = 0x0007;


	/*
	 * EVENT_SYSTEM_CAPTURESTART
	 * EVENT_SYSTEM_CAPTUREEND
	 * Sent when a window takes the capture and releases the capture.
	 */
	module.EVENT_SYSTEM_CAPTURESTART = 0x0008;
	module.EVENT_SYSTEM_CAPTUREEND = 0x0009;

	/*
	 * Move Size
	 * EVENT_SYSTEM_MOVESIZESTART
	 * EVENT_SYSTEM_MOVESIZEEND
	 * Sent when a window enters and leaves move-size dragging mode.
	 */
	module.EVENT_SYSTEM_MOVESIZESTART = 0x000A;
	module.EVENT_SYSTEM_MOVESIZEEND = 0x000B;

	/*
	 * Context Help
	 * EVENT_SYSTEM_CONTEXTHELPSTART
	 * EVENT_SYSTEM_CONTEXTHELPEND
	 * Sent when a window enters and leaves context sensitive help mode.
	 */
	module.EVENT_SYSTEM_CONTEXTHELPSTART = 0x000C;
	module.EVENT_SYSTEM_CONTEXTHELPEND = 0x000D;

	/*
	 * Drag & Drop
	 * EVENT_SYSTEM_DRAGDROPSTART
	 * EVENT_SYSTEM_DRAGDROPEND
	 * Send the START notification just before going into drag&drop loop. = Send;
	 * the END notification just after canceling out.
	 * Note that it is up to apps and OLE to generate this, since the system
	 * doesn't know. = Like EVENT_SYSTEM_SOUND, it will be a while before this
	 * is prevalent.
	 */
	module.EVENT_SYSTEM_DRAGDROPSTART = 0x000E;
	module.EVENT_SYSTEM_DRAGDROPEND = 0x000F;

	/*
	 * Dialog
	 * Send the START notification right after the dialog is completely
	 * = initialized and visible. = Send the END right before the dialog;
	 * = is hidden and goes away.
	 * EVENT_SYSTEM_DIALOGSTART
	 * EVENT_SYSTEM_DIALOGEND
	 */
	module.EVENT_SYSTEM_DIALOGSTART = 0x0010;
	module.EVENT_SYSTEM_DIALOGEND = 0x0011;

	/*
	 * EVENT_SYSTEM_SCROLLING
	 * EVENT_SYSTEM_SCROLLINGSTART
	 * EVENT_SYSTEM_SCROLLINGEND
	 * Sent when beginning and ending the tracking of a scrollbar in a window,
	 * and also for scrollbar controls.
	 */
	module.EVENT_SYSTEM_SCROLLINGSTART = 0x0012;
	module.EVENT_SYSTEM_SCROLLINGEND = 0x0013;

	/*
	 * Alt-Tab Window
	 * Send the START notification right after the switch window is initialized
	 * and visible. = Send the END right before it is hidden and goes away.
	 * EVENT_SYSTEM_SWITCHSTART
	 * EVENT_SYSTEM_SWITCHEND
	 */
	module.EVENT_SYSTEM_SWITCHSTART = 0x0014;
	module.EVENT_SYSTEM_SWITCHEND = 0x0015;

	/*
	 * EVENT_SYSTEM_MINIMIZESTART
	 * EVENT_SYSTEM_MINIMIZEEND
	 * Sent when a window minimizes and just before it restores.
	 */
	module.EVENT_SYSTEM_MINIMIZESTART = 0x0016;
	module.EVENT_SYSTEM_MINIMIZEEND = 0x0017;


	//#if(_WIN32_WINNT >= 0x0501);
	module.EVENT_CONSOLE_CARET = 0x4001;
	module.EVENT_CONSOLE_UPDATE_REGION = 0x4002;
	module.EVENT_CONSOLE_UPDATE_SIMPLE = 0x4003;
	module.EVENT_CONSOLE_UPDATE_SCROLL = 0x4004;
	module.EVENT_CONSOLE_LAYOUT = 0x4005;
	module.EVENT_CONSOLE_START_APPLICATION = 0x4006;
	module.EVENT_CONSOLE_END_APPLICATION = 0x4007;

	/*
	 * Flags for EVENT_CONSOLE_START/END_APPLICATION.
	 */
	module.CONSOLE_APPLICATION_16BIT = 0x0001;

	/*
	 * Flags for EVENT_CONSOLE_CARET
	 */
	module.CONSOLE_CARET_SELECTION = 0x0001;
	module.CONSOLE_CARET_VISIBLE = 0x0002;
	//#endif /* _WIN32_WINNT >= 0x0501 */

	module.EVENT_OBJECT_CREATE = 0x8000; // hwnd + ID + idChild is created item
	module.EVENT_OBJECT_DESTROY = 0x8001; // hwnd + ID + idChild is destroyed item
	module.EVENT_OBJECT_SHOW = 0x8002; // hwnd + ID + idChild is shown item
	module.EVENT_OBJECT_HIDE = 0x8003; // hwnd + ID + idChild is hidden item
	module.EVENT_OBJECT_REORDER = 0x8004; // hwnd + ID + idChild is parent of zordering children



	module.EVENT_OBJECT_FOCUS = 0x8005; // hwnd + ID + idChild is focused item
	module.EVENT_OBJECT_SELECTION = 0x8006; // hwnd + ID + idChild is selected item (if only one), or idChild is OBJID_WINDOW if complex
	module.EVENT_OBJECT_SELECTIONADD = 0x8007; // hwnd + ID + idChild is item added
	module.EVENT_OBJECT_SELECTIONREMOVE = 0x8008; // hwnd + ID + idChild is item removed
	module.EVENT_OBJECT_SELECTIONWITHIN = 0x8009; // hwnd + ID + idChild is parent of changed selected items



	module.EVENT_OBJECT_STATECHANGE = 0x800A; // hwnd + ID + idChild is item w/ state change
	/*
	 * Examples of when to send an EVENT_OBJECT_STATECHANGE include
	 * = * It is being enabled/disabled (USER does for windows)
	 * = * It is being pressed/released (USER does for buttons)
	 * = * It is being checked/unchecked (USER does for radio/check buttons)
	 */
	module.EVENT_OBJECT_LOCATIONCHANGE = 0x800B; // hwnd + ID + idChild is moved/sized item



	module.EVENT_OBJECT_NAMECHANGE = 0x800C; // hwnd + ID + idChild is item w/ name change
	module.EVENT_OBJECT_DESCRIPTIONCHANGE = 0x800D; // hwnd + ID + idChild is item w/ desc change
	module.EVENT_OBJECT_VALUECHANGE = 0x800E; // hwnd + ID + idChild is item w/ value change
	module.EVENT_OBJECT_PARENTCHANGE = 0x800F; // hwnd + ID + idChild is item w/ new parent
	module.EVENT_OBJECT_HELPCHANGE = 0x8010; // hwnd + ID + idChild is item w/ help change
	module.EVENT_OBJECT_DEFACTIONCHANGE = 0x8011; // hwnd + ID + idChild is item w/ def action change
	module.EVENT_OBJECT_ACCELERATORCHANGE = 0x8012; // hwnd + ID + idChild is item w/ keybd accel change


	/*
	 * Child IDs
	 */

	/*
	 * System Sounds (idChild of system SOUND notification)
	 */
	module.SOUND_SYSTEM_STARTUP = 1;
	module.SOUND_SYSTEM_SHUTDOWN = 2;
	module.SOUND_SYSTEM_BEEP = 3;
	module.SOUND_SYSTEM_ERROR = 4;
	module.SOUND_SYSTEM_QUESTION = 5;
	module.SOUND_SYSTEM_WARNING = 6;
	module.SOUND_SYSTEM_INFORMATION = 7;
	module.SOUND_SYSTEM_MAXIMIZE = 8;
	module.SOUND_SYSTEM_MINIMIZE = 9;
	module.SOUND_SYSTEM_RESTOREUP = 10;
	module.SOUND_SYSTEM_RESTOREDOWN = 11;
	module.SOUND_SYSTEM_APPSTART = 12;
	module.SOUND_SYSTEM_FAULT = 13;
	module.SOUND_SYSTEM_APPEND = 14;
	module.SOUND_SYSTEM_MENUCOMMAND = 15;
	module.SOUND_SYSTEM_MENUPOPUP = 16;
	module.CSOUND_SYSTEM = 16;

	/*
	 * System Alerts (indexChild of system ALERT notification)
	 */
	module.ALERT_SYSTEM_INFORMATIONAL = 1; // MB_INFORMATION
	module.ALERT_SYSTEM_WARNING = 2; // MB_WARNING
	module.ALERT_SYSTEM_ERROR = 3; // MB_ERROR
	module.ALERT_SYSTEM_QUERY = 4; // MB_QUESTION
	module.ALERT_SYSTEM_CRITICAL = 5; // HardSysErrBox
	module.CALERT_SYSTEM = 6;


	//#ifndef NO_STATE_FLAGS
	module.STATE_SYSTEM_UNAVAILABLE = 0x00000001; // Disabled
	module.STATE_SYSTEM_SELECTED = 0x00000002;
	module.STATE_SYSTEM_FOCUSED = 0x00000004;
	module.STATE_SYSTEM_PRESSED = 0x00000008;
	module.STATE_SYSTEM_CHECKED = 0x00000010;
	module.STATE_SYSTEM_MIXED = 0x00000020; // 3-state checkbox or toolbar button
	module.STATE_SYSTEM_INDETERMINATE = module.STATE_SYSTEM_MIXED;
	module.STATE_SYSTEM_READONLY = 0x00000040;
	module.STATE_SYSTEM_HOTTRACKED = 0x00000080;
	module.STATE_SYSTEM_DEFAULT = 0x00000100;
	module.STATE_SYSTEM_EXPANDED = 0x00000200;
	module.STATE_SYSTEM_COLLAPSED = 0x00000400;
	module.STATE_SYSTEM_BUSY = 0x00000800;
	module.STATE_SYSTEM_FLOATING = 0x00001000; // Children "owned" not "contained" by parent
	module.STATE_SYSTEM_MARQUEED = 0x00002000;
	module.STATE_SYSTEM_ANIMATED = 0x00004000;
	module.STATE_SYSTEM_INVISIBLE = 0x00008000;
	module.STATE_SYSTEM_OFFSCREEN = 0x00010000;
	module.STATE_SYSTEM_SIZEABLE = 0x00020000;
	module.STATE_SYSTEM_MOVEABLE = 0x00040000;
	module.STATE_SYSTEM_SELFVOICING = 0x00080000;
	module.STATE_SYSTEM_FOCUSABLE = 0x00100000;
	module.STATE_SYSTEM_SELECTABLE = 0x00200000;
	module.STATE_SYSTEM_LINKED = 0x00400000;
	module.STATE_SYSTEM_TRAVERSED = 0x00800000;
	module.STATE_SYSTEM_MULTISELECTABLE = 0x01000000; // Supports multiple selection
	module.STATE_SYSTEM_EXTSELECTABLE = 0x02000000; // Supports extended selection
	module.STATE_SYSTEM_ALERT_LOW = 0x04000000; // This information is of low priority
	module.STATE_SYSTEM_ALERT_MEDIUM = 0x08000000; // This information is of medium priority
	module.STATE_SYSTEM_ALERT_HIGH = 0x10000000; // This information is of high priority
	module.STATE_SYSTEM_PROTECTED = 0x20000000; // access to this is restricted
	module.STATE_SYSTEM_VALID = 0x3FFFFFFF;
	//#endif

	module.CCHILDREN_TITLEBAR = 5;
	module.CCHILDREN_SCROLLBAR = 5;


	module.CURSOR_SHOWING = 0x00000001;


	module.WS_ACTIVECAPTION = 0x0001;


	/*
	 * The "real" ancestor window
	 */
	module.GA_PARENT = 1;
	module.GA_ROOT = 2;
	module.GA_ROOTOWNER = 3;


	/*
	 * The input is in the regular message flow,
	 * the app is required to call DefWindowProc
	 * so that the system can perform clean ups.
	 */
	module.RIM_INPUT = 0;

	/*
	 * The input is sink only. The app is expected
	 * to behave nicely.
	 */
	module.RIM_INPUTSINK = 1;


	/*
	 * Type of the raw input
	 */
	module.RIM_TYPEMOUSE = 0;
	module.RIM_TYPEKEYBOARD = 1;
	module.RIM_TYPEHID = 2;


	/*
	 * Define the mouse button state indicators.
	 */

	module.RI_MOUSE_LEFT_BUTTON_DOWN = 0x0001; // Left Button changed to down.
	module.RI_MOUSE_LEFT_BUTTON_UP = 0x0002; // Left Button changed to up.
	module.RI_MOUSE_RIGHT_BUTTON_DOWN = 0x0004; // Right Button changed to down.
	module.RI_MOUSE_RIGHT_BUTTON_UP = 0x0008; // Right Button changed to up.
	module.RI_MOUSE_MIDDLE_BUTTON_DOWN = 0x0010; // Middle Button changed to down.
	module.RI_MOUSE_MIDDLE_BUTTON_UP = 0x0020; // Middle Button changed to up.

	module.RI_MOUSE_BUTTON_1_DOWN = module.RI_MOUSE_LEFT_BUTTON_DOWN;
	module.RI_MOUSE_BUTTON_1_UP = module.RI_MOUSE_LEFT_BUTTON_UP;
	module.RI_MOUSE_BUTTON_2_DOWN = module.RI_MOUSE_RIGHT_BUTTON_DOWN;
	module.RI_MOUSE_BUTTON_2_UP = module.RI_MOUSE_RIGHT_BUTTON_UP;
	module.RI_MOUSE_BUTTON_3_DOWN = module.RI_MOUSE_MIDDLE_BUTTON_DOWN;
	module.RI_MOUSE_BUTTON_3_UP = module.RI_MOUSE_MIDDLE_BUTTON_UP;

	module.RI_MOUSE_BUTTON_4_DOWN = 0x0040;
	module.RI_MOUSE_BUTTON_4_UP = 0x0080;
	module.RI_MOUSE_BUTTON_5_DOWN = 0x0100;
	module.RI_MOUSE_BUTTON_5_UP = 0x0200;

	/*
	 * If usButtonFlags has RI_MOUSE_WHEEL, the wheel delta is stored in usButtonData.
	 * Take it as a signed value.
	 */
	module.RI_MOUSE_WHEEL = 0x0400;

	/*
	 * Define the mouse indicator flags.
	 */
	module.MOUSE_MOVE_RELATIVE = 0;
	module.MOUSE_MOVE_ABSOLUTE = 1;
	module.MOUSE_VIRTUAL_DESKTOP = 0x02; // the coordinates are mapped to the virtual desktop
	module.MOUSE_ATTRIBUTES_CHANGED = 0x04; // requery for mouse attributes

	module.KEYBOARD_OVERRUN_MAKE_CODE = 0xFF;

	/*
	 * Define the keyboard input data Flags.
	 */
	module.RI_KEY_MAKE = 0;
	module.RI_KEY_BREAK = 1;
	module.RI_KEY_E0 = 2;
	module.RI_KEY_E1 = 4;
	module.RI_KEY_TERMSRV_SET_LED = 8;
	module.RI_KEY_TERMSRV_SHADOW = 0x10;


	/*
	 * Flags for GetRawInputData
	 */

	module.RID_INPUT = 0x10000003;
	module.RID_HEADER = 0x10000005;


	/*
	 * Raw Input Device Information
	 */
	module.RIDI_PREPARSEDDATA = 0x20000005;
	module.RIDI_DEVICENAME = 0x20000007; // the return valus is the character length, not the byte size
	module.RIDI_DEVICEINFO = 0x2000000b;


	module.RIDEV_REMOVE = 0x00000001;
	module.RIDEV_EXCLUDE = 0x00000010;
	module.RIDEV_PAGEONLY = 0x00000020;
	module.RIDEV_NOLEGACY = 0x00000030;
	module.RIDEV_INPUTSINK = 0x00000100;
	module.RIDEV_CAPTUREMOUSE = 0x00000200; // effective when mouse nolegacy is specified, otherwise it would be an error
	module.RIDEV_NOHOTKEYS = 0x00000200; // effective for keyboard.
	module.RIDEV_APPKEYS = 0x00000400; // effective for keyboard.
	module.RIDEV_EXMODEMASK = 0x000000F0;

		
	return module;
});